33namespace App \Http \Controllers \API ;
44
55use App \Actions \Site \Deploy ;
6- use App \Exceptions \SourceControlIsNotConnected ;
7- use App \Facades \Notifier ;
6+ use App \Exceptions \FailedToDestroyGitHook ;
87use App \Http \Controllers \Controller ;
98use App \Models \GitHook ;
109use App \Models \ServerLog ;
1110use App \Models \SourceControl ;
12- use App \Notifications \SourceControlDisconnected ;
1311use Illuminate \Http \JsonResponse ;
1412use Illuminate \Http \Request ;
1513use Illuminate \Support \Facades \Log ;
1816
1917class GitHookController extends Controller
2018{
19+ /**
20+ * @throws FailedToDestroyGitHook
21+ */
2122 #[Any('api/git-hooks ' , name: 'api.git-hooks ' )]
2223 public function __invoke (Request $ request ): JsonResponse
2324 {
@@ -30,15 +31,21 @@ public function __invoke(Request $request): JsonResponse
3031 ->where ('secret ' , $ request ->input ('secret ' ))
3132 ->firstOrFail ();
3233
34+ if (! $ gitHook ->site ) {
35+ $ gitHook ->destroyHook ();
36+
37+ return response ()->json ([
38+ 'success ' => true ,
39+ ]);
40+ }
41+
3342 foreach ($ gitHook ->actions as $ action ) {
3443 /** @var SourceControl $sourceControl */
3544 $ sourceControl = $ gitHook ->site ->sourceControl ;
3645 $ webhookBranch = $ sourceControl ->provider ()->getWebhookBranch ($ request ->array ());
3746 if ($ action == 'deploy ' && $ gitHook ->site ->branch === $ webhookBranch ) {
3847 try {
3948 app (Deploy::class)->run ($ gitHook ->site );
40- } catch (SourceControlIsNotConnected ) {
41- Notifier::send ($ gitHook ->sourceControl , new SourceControlDisconnected ($ gitHook ->sourceControl ));
4249 } catch (Throwable $ e ) {
4350 ServerLog::log (
4451 $ gitHook ->site ->server ,
0 commit comments