%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Jobs/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Jobs/MissedCallsTracker.php |
<?php namespace App\Jobs; use App\Models\Individual; use App\Models\Notice; use App\Scopes\IndividualScope; use App\Services\HookService; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class MissedCallsTracker implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * */ public function __construct() { } /** * Execute the job. * * @return void */ public function handle() { //deve girare ogni minuto $now = date("Y-m-d H:i:s"); $seconds = env('XCALLY_TIMEOUT', 150); $hours = floor($seconds / 3600); $mins = floor($seconds / 60 % 60); $secs = floor($seconds % 60); $delay = sprintf('%02d:%02d:%02d', $hours, $mins, $secs); $missedCalls = DB::select(" select * from notices where status = 'underway' and AddTime(scheduled_at, '$delay') <= '$now' "); $collection = collect($missedCalls); foreach($collection as $notice){ $ids = [ $notice->id, $notice->minor_id, $notice->institute_id, $notice->classroom_id, $notice->schoolyear_id, $notice->user_id]; $alert_id = implode("_",$ids); $individual = Individual::withoutGlobalScope(IndividualScope::class)->find($notice->individual_id); $payload = [ "name" => $individual->name, "surname" => $individual->surname, "phone" => $individual->mobile, "alert_id" => $alert_id, "result" => false, ]; Log::channel('database')->info("{$notice->minor_id}: Chiamata d'emergenza in timeout per ". $individual->mobile); $hookService = (new HookService($payload)); $hookService->handle(); } } }