Page MenuHomePhorge

D4214.1775395348.diff
No OneTemporary

Authored By
Unknown
Size
1 KB
Referenced Files
None
Subscribers
None

D4214.1775395348.diff

diff --git a/src/app/Http/Controllers/API/V4/HealthController.php b/src/app/Http/Controllers/API/V4/HealthController.php
new file mode 100644
--- /dev/null
+++ b/src/app/Http/Controllers/API/V4/HealthController.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Http\Controllers\API\V4;
+
+use App\Http\Controllers\Controller;
+
+class HealthController extends Controller
+{
+ /**
+ * Run a health status check
+ *
+ * @return \Illuminate\Http\JsonResponse The response
+ */
+ public function status()
+ {
+ $code = \Artisan::call("health:status");
+ if ($code != 0) {
+ \Log::info("Healthcheck failed");
+
+ $result = [
+ 'status' => 'error',
+ 'output' => \Artisan::output()
+ ];
+
+ return response()->json($result, 200);
+ }
+
+ $result = [
+ 'status' => 'ok',
+ ];
+
+ return response()->json($result, 200);
+ }
+}
diff --git a/src/routes/api.php b/src/routes/api.php
--- a/src/routes/api.php
+++ b/src/routes/api.php
@@ -225,6 +225,7 @@
Route::post('policy/greylist', [API\V4\PolicyController::class, 'greylist']);
Route::post('policy/ratelimit', [API\V4\PolicyController::class, 'ratelimit']);
Route::post('policy/spf', [API\V4\PolicyController::class, 'senderPolicyFramework']);
+ Route::get('health/status', [API\V4\HealthController::class, 'status']);
}
);
}

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 1:22 PM (1 d, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18833536
Default Alt Text
D4214.1775395348.diff (1 KB)

Event Timeline