vito/app/Models/GitHook.php
Saeed Vaziry 428140b931
refactoring (#116)
- refactoring architecture
- fix incomplete ssh logs
- code editor for scripts in the app
- remove Jobs and SSHCommands
2024-03-14 20:03:43 +01:00

64 lines
1.4 KiB
PHP
Executable File

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* @property int $site_id
* @property int $source_control_id
* @property string $secret
* @property array $events
* @property array $actions
* @property string $hook_id
* @property array $hook_response
* @property Site $site
* @property SourceControl $sourceControl
*/
class GitHook extends AbstractModel
{
use HasFactory;
protected $fillable = [
'site_id',
'source_control_id',
'secret',
'events',
'actions',
'hook_id',
'hook_response',
];
protected $casts = [
'site_id' => 'integer',
'source_control_id' => 'integer',
'events' => 'array',
'actions' => 'array',
'hook_response' => 'json',
];
public function site(): BelongsTo
{
return $this->belongsTo(Site::class);
}
public function sourceControl(): BelongsTo
{
return $this->belongsTo(SourceControl::class);
}
public function deployHook(): void
{
$this->update(
$this->sourceControl->provider()->deployHook($this->site->repository, $this->events, $this->secret)
);
}
public function destroyHook(): void
{
$this->sourceControl->provider()->destroyHook($this->site->repository, $this->hook_id);
$this->delete();
}
}