File: //var/www/quadcode-jobs/app/Http/Controllers/HealthController.php
<?php
namespace App\Http\Controllers;
use App\Repositories\JobsRepository;
use Illuminate\Http\JsonResponse;
use Illuminate\Routing\Controller as BaseController;
class HealthController extends BaseController
{
public function health(JobsRepository $jobsRepository): JsonResponse
{
$errors = [];
$mailInQueueCount = $jobsRepository->getMailQueueCount();
$state = $mailInQueueCount > 5 ? 'error' : ($mailInQueueCount > 2 ? 'warning' : 'ok');
if ($mailInQueueCount > 2) {
$errors[] = 'Mail queue size: ' . $mailInQueueCount;
}
$jobsErrorsCount = $jobsRepository->getFailedMailQueueCount();
if (!empty($jobsErrorsCount)) {
$state = 'error';
$errors[] = 'Mail jobs errors count: ' . $jobsErrorsCount;
}
return response()->json(['state' => $state, 'error' => implode(', ', $errors)]);
}
}