ailixir-api / app /Jobs /RunScreeningJob.php
AILIXIR Bot
Auto-sync: 201d269f287526269b8ffded5f450ff36b46c740
907b200
Raw
History Blame Contribute Delete
1.19 kB
<?php
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
class RunScreeningJob implements ShouldQueue
{
use Queueable;
public function __construct(protected \App\Models\ScreeningResult $screeningResult) {}
public function handle(\App\Services\ScreeningService $screeningService): void
{
$this->screeningResult->update(['status' => 'processing']);
try {
$input = $this->screeningResult->input;
$output = $screeningService->screen($input);
if (is_array($output)) {
unset($output['warnings']);
}
$this->screeningResult->update([
'output' => $output,
'status' => 'completed',
]);
} catch (\Exception $e) {
\Illuminate\Support\Facades\Log::error('Screening job failed', [
'id' => $this->screeningResult->id,
'error' => $e->getMessage()
]);
$this->screeningResult->update([
'status' => 'failed',
'output' => ['error' => $e->getMessage()],
]);
}
}
}