55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Livewire\Project\Application;
 | |
| 
 | |
| use App\Models\Application;
 | |
| use App\Models\PrivateKey;
 | |
| use Livewire\Component;
 | |
| 
 | |
| class Source extends Component
 | |
| {
 | |
|     public $applicationId;
 | |
|     public Application $application;
 | |
|     public $private_keys;
 | |
|     protected $rules = [
 | |
|         'application.git_repository' => 'required',
 | |
|         'application.git_branch' => 'required',
 | |
|         'application.git_commit_sha' => 'nullable',
 | |
|     ];
 | |
|     protected $validationAttributes = [
 | |
|         'application.git_repository' => 'repository',
 | |
|         'application.git_branch' => 'branch',
 | |
|         'application.git_commit_sha' => 'commit sha',
 | |
|     ];
 | |
| 
 | |
|     public function mount()
 | |
|     {
 | |
|         $this->get_private_keys();
 | |
|     }
 | |
| 
 | |
|     private function get_private_keys()
 | |
|     {
 | |
|         $this->private_keys = PrivateKey::whereTeamId(currentTeam()->id)->get()->reject(function ($key) {
 | |
|             return $key->id == $this->application->private_key_id;
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     public function setPrivateKey(int $private_key_id)
 | |
|     {
 | |
|         $this->application->private_key_id = $private_key_id;
 | |
|         $this->application->save();
 | |
|         $this->application->refresh();
 | |
|         $this->get_private_keys();
 | |
|     }
 | |
| 
 | |
|     public function submit()
 | |
|     {
 | |
|         $this->validate();
 | |
|         if (!$this->application->git_commit_sha) {
 | |
|             $this->application->git_commit_sha = 'HEAD';
 | |
|         }
 | |
|         $this->application->save();
 | |
|         $this->dispatch('success', 'Application source updated!');
 | |
|     }
 | |
| }
 | 
