diff --git a/app/Http/Controllers/Api/V1/SiteController.php b/app/Http/Controllers/Api/V1/SiteController.php index 1a7351a..b63c749 100644 --- a/app/Http/Controllers/Api/V1/SiteController.php +++ b/app/Http/Controllers/Api/V1/SiteController.php @@ -33,7 +33,7 @@ public function register(Request $request): JsonResponse $url = $request->string('url'); $key = $request->string('key'); - if ($url->isEmpty() && $key->isEmpty()) { + if ($url->isEmpty() || $key->isEmpty()) { return $this->error('BadRequest'); } @@ -72,7 +72,25 @@ public function register(Request $request): JsonResponse */ public function check(Request $request): JsonResponse { - return response()->json(['check']); + $url = $request->string('url'); + $key = $request->string('key'); + + if ($url->isEmpty() || $key->isEmpty()) { + return $this->error('BadRequest'); + } + + $connectionService = new Connection($url, $key); + + // Do a health check + try { + $connectionService->checkHealth(); + } catch (ServerException $e) { + return $this->error($e->getMessage(), 500); + } catch (ClientException|\Exception $e) { + return $this->error($e->getMessage()); + } + + return $this->ok(); } /** @@ -82,6 +100,19 @@ public function check(Request $request): JsonResponse */ public function delete(Request $request): JsonResponse { - return response()->json(['delete']); + $url = $request->string('url'); + $key = $request->string('key'); + + if ($url->isEmpty() || $key->isEmpty()) { + return $this->error('BadRequest'); + } + + try { + Site::where('url', $url)->where('key', $key)->delete(); + } catch (\Exception $e) { + return $this->error($e->getMessage()); + } + + return $this->ok(); } } diff --git a/routes/api.php b/routes/api.php index ac53a95..ba59e28 100644 --- a/routes/api.php +++ b/routes/api.php @@ -6,7 +6,7 @@ Route::prefix('v1')->group(function () { Route::controller(SiteController::class)->group(function () { Route::get('register', 'register'); - Route::get('check/{hase}', 'check'); - Route::delete('delete/{hash}', 'delete'); + Route::get('check', 'check'); + Route::delete('delete', 'delete'); }); });