Edit File: OrderIntransitNotify.php
<?php namespace App\Jobs; use App\Traits\Firebase; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App\Notifications\NotifyUser as Notify ; class OrderIntransitNotify implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; use Firebase; /** * Create a new job instance. * * @return void */ protected $users, $data, $order, $status; public function __construct($users, $order, $status) { $user = auth('api')->user(); $order = $order; $status = $status; $title_ar = ''; $title_en = ''; $message_ar = ''; $message_en = ''; if ($status == "reached_deliver_location") { $title_ar = 'تم الوصول لموقع التسليم'; $title_en = 'delegate is delivered to deliver location'; $message_ar = 'تم الوصول لموقع التسليم'; $message_en = 'delegate is delivered to deliver location'; } else { $title_ar = 'تم بدء التوصيل '; $title_en = 'order is intransit'; $message_ar = 'تم بدء التوصيل'; $message_en = 'order is intransit'; } $this->data = [ 'sender' => $user->id, 'sender_name' => $user->name, 'sender_avatar' => $user->AvatarPath, 'title_ar' => $title_ar, 'title_en' => $title_en, 'message_ar' => $message_ar, 'message_en' => $message_en, 'type' => 'order_intransit', 'order_id' => $order->id, 'order_type' => $order->type, 'order_status' => $order->statusForUser(), 'order_owner' => $order->user?->id, ]; $this->users = $users; } /** * Execute the job. * * @return void */ public function handle() { $ios_tokens = []; $android_tokens = []; $user = $this->users; if (isset($user->devices)) { if ($user->devices->count() > 0) { foreach ($user->devices()->where('device_type','ios')->get() as $device) { if($device->user->new_orders_notify=='true'){ $ios_tokens[] = $device->device_id; } } foreach ($user->devices()->where('device_type','android')->get() as $device) { if($device->user->new_orders_notify=='true'){ $android_tokens[] = $device->device_id; } } $user->notify(new Notify($this->data)); $this->sendNotification($ios_tokens, $this->data , 'ios'); $this->sendNotification($android_tokens, $this->data , 'android'); } } } }
Back to File Manager