refactored: webhooks view
This commit is contained in:
		@@ -4,49 +4,59 @@ namespace App\Livewire\Project\Shared;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use Livewire\Component;
 | 
					use Livewire\Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Refactored ✅
 | 
				
			||||||
class Webhooks extends Component
 | 
					class Webhooks extends Component
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public $resource;
 | 
					    public $resource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ?string $deploywebhook = null;
 | 
					    public string $deploywebhook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ?string $githubManualWebhook = null;
 | 
					    public string $githubManualWebhook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ?string $gitlabManualWebhook = null;
 | 
					    public string $gitlabManualWebhook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ?string $bitbucketManualWebhook = null;
 | 
					    public string $bitbucketManualWebhook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ?string $giteaManualWebhook = null;
 | 
					    public string $giteaManualWebhook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected $rules = [
 | 
					    public ?string $githubManualWebhookSecret = null;
 | 
				
			||||||
        'resource.manual_webhook_secret_github' => 'nullable|string',
 | 
					 | 
				
			||||||
        'resource.manual_webhook_secret_gitlab' => 'nullable|string',
 | 
					 | 
				
			||||||
        'resource.manual_webhook_secret_bitbucket' => 'nullable|string',
 | 
					 | 
				
			||||||
        'resource.manual_webhook_secret_gitea' => 'nullable|string',
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function saveSecret()
 | 
					    public ?string $gitlabManualWebhookSecret = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ?string $bitbucketManualWebhookSecret = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ?string $giteaManualWebhookSecret = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function mount()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->deploywebhook = generateDeployWebhook($this->resource);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->githubManualWebhookSecret = data_get($this->resource, 'manual_webhook_secret_github');
 | 
				
			||||||
 | 
					        $this->githubManualWebhook = generateGitManualWebhook($this->resource, 'github');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->gitlabManualWebhookSecret = data_get($this->resource, 'manual_webhook_secret_gitlab');
 | 
				
			||||||
 | 
					        $this->gitlabManualWebhook = generateGitManualWebhook($this->resource, 'gitlab');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->bitbucketManualWebhookSecret = data_get($this->resource, 'manual_webhook_secret_bitbucket');
 | 
				
			||||||
 | 
					        $this->bitbucketManualWebhook = generateGitManualWebhook($this->resource, 'bitbucket');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->giteaManualWebhookSecret = data_get($this->resource, 'manual_webhook_secret_gitea');
 | 
				
			||||||
 | 
					        $this->giteaManualWebhook = generateGitManualWebhook($this->resource, 'gitea');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function submit()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            $this->validate();
 | 
					            $this->authorize('update', $this->resource);
 | 
				
			||||||
            $this->resource->save();
 | 
					            $this->resource->update([
 | 
				
			||||||
 | 
					                'manual_webhook_secret_github' => $this->githubManualWebhookSecret,
 | 
				
			||||||
 | 
					                'manual_webhook_secret_gitlab' => $this->gitlabManualWebhookSecret,
 | 
				
			||||||
 | 
					                'manual_webhook_secret_bitbucket' => $this->bitbucketManualWebhookSecret,
 | 
				
			||||||
 | 
					                'manual_webhook_secret_gitea' => $this->giteaManualWebhookSecret,
 | 
				
			||||||
 | 
					            ]);
 | 
				
			||||||
            $this->dispatch('success', 'Secret Saved.');
 | 
					            $this->dispatch('success', 'Secret Saved.');
 | 
				
			||||||
        } catch (\Exception $e) {
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
            return handleError($e, $this);
 | 
					            return handleError($e, $this);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function mount()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $this->deploywebhook = generateDeployWebhook($this->resource);
 | 
					 | 
				
			||||||
        $this->githubManualWebhook = generateGitManualWebhook($this->resource, 'github');
 | 
					 | 
				
			||||||
        $this->gitlabManualWebhook = generateGitManualWebhook($this->resource, 'gitlab');
 | 
					 | 
				
			||||||
        $this->bitbucketManualWebhook = generateGitManualWebhook($this->resource, 'bitbucket');
 | 
					 | 
				
			||||||
        $this->giteaManualWebhook = generateGitManualWebhook($this->resource, 'gitea');
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function render()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return view('livewire.project.shared.webhooks');
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,13 +13,13 @@
 | 
				
			|||||||
        <div>
 | 
					        <div>
 | 
				
			||||||
            <h3>Manual Git Webhooks</h3>
 | 
					            <h3>Manual Git Webhooks</h3>
 | 
				
			||||||
            @if ($githubManualWebhook && $gitlabManualWebhook)
 | 
					            @if ($githubManualWebhook && $gitlabManualWebhook)
 | 
				
			||||||
                <form wire:submit='saveSecret' class="flex flex-col gap-2">
 | 
					                <form wire:submit='submit' class="flex flex-col gap-2">
 | 
				
			||||||
                    <div class="flex items-end gap-2">
 | 
					                    <div class="flex items-end gap-2">
 | 
				
			||||||
                        <x-forms.input helper="Content Type in GitHub configuration could be json or form-urlencoded."
 | 
					                        <x-forms.input helper="Content Type in GitHub configuration could be json or form-urlencoded."
 | 
				
			||||||
                            readonly label="GitHub" id="githubManualWebhook"></x-forms.input>
 | 
					                            readonly label="GitHub" id="githubManualWebhook"></x-forms.input>
 | 
				
			||||||
                        <x-forms.input type="password"
 | 
					                        <x-forms.input type="password"
 | 
				
			||||||
                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in GitHub."
 | 
					                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in GitHub."
 | 
				
			||||||
                            label="GitHub Webhook Secret" id="resource.manual_webhook_secret_github"></x-forms.input>
 | 
					                            label="GitHub Webhook Secret" id="githubManualWebhookSecret"></x-forms.input>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <a target="_blank" class="flex hover:no-underline" href="{{ $resource?->gitWebhook }}">
 | 
					                    <a target="_blank" class="flex hover:no-underline" href="{{ $resource?->gitWebhook }}">
 | 
				
			||||||
@@ -31,21 +31,19 @@
 | 
				
			|||||||
                        <x-forms.input readonly label="GitLab" id="gitlabManualWebhook"></x-forms.input>
 | 
					                        <x-forms.input readonly label="GitLab" id="gitlabManualWebhook"></x-forms.input>
 | 
				
			||||||
                        <x-forms.input type="password"
 | 
					                        <x-forms.input type="password"
 | 
				
			||||||
                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in GitLab."
 | 
					                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in GitLab."
 | 
				
			||||||
                            label="GitLab Webhook Secret" id="resource.manual_webhook_secret_gitlab"></x-forms.input>
 | 
					                            label="GitLab Webhook Secret" id="gitlabManualWebhookSecret"></x-forms.input>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div class="flex gap-2">
 | 
					                    <div class="flex gap-2">
 | 
				
			||||||
                        <x-forms.input readonly label="Bitbucket" id="bitbucketManualWebhook"></x-forms.input>
 | 
					                        <x-forms.input readonly label="Bitbucket" id="bitbucketManualWebhook"></x-forms.input>
 | 
				
			||||||
                        <x-forms.input type="password"
 | 
					                        <x-forms.input type="password"
 | 
				
			||||||
                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in Bitbucket."
 | 
					                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in Bitbucket."
 | 
				
			||||||
                            label="Bitbucket Webhook Secret"
 | 
					                            label="Bitbucket Webhook Secret" id="bitbucketManualWebhookSecret"></x-forms.input>
 | 
				
			||||||
                            id="resource.manual_webhook_secret_bitbucket"></x-forms.input>
 | 
					 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div class="flex gap-2">
 | 
					                    <div class="flex gap-2">
 | 
				
			||||||
                        <x-forms.input readonly label="Gitea" id="giteaManualWebhook"></x-forms.input>
 | 
					                        <x-forms.input readonly label="Gitea" id="giteaManualWebhook"></x-forms.input>
 | 
				
			||||||
                        <x-forms.input type="password"
 | 
					                        <x-forms.input type="password"
 | 
				
			||||||
                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in Gitea."
 | 
					                            helper="Need to set a secret to be able to use this webhook. It should match with the secret in Gitea."
 | 
				
			||||||
                            label="Gitea Webhook Secret"
 | 
					                            label="Gitea Webhook Secret" id="giteaManualWebhookSecret"></x-forms.input>
 | 
				
			||||||
                            id="resource.manual_webhook_secret_gitea"></x-forms.input>
 | 
					 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <x-forms.button type="submit">Save</x-forms.button>
 | 
					                    <x-forms.button type="submit">Save</x-forms.button>
 | 
				
			||||||
                </form>
 | 
					                </form>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user