Viewing File: /home/ubuntu/shop-website-base/app/Jobs/OrderMessageJob.php

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

use App\Models\Order,App\Models\OrderProduct,App\Models\Product;

use Twilio\Rest\Client;

use App\Models\Admin;

use Exception, DB, Validator, Setting, Log, Hash, Auth;


class OrderMessageJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    protected $data;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public $tries = 2;


    public function __construct($data)
    {
        //
        $this->data = $data;

    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        try {

        $order = $this->data['order'];

        $admin_data['message'] = tr('admin_order_message',$order->user->name ?? '')." ".$this->data['status'];

        $user_message = tr('user_order_message',$order->user->name ?? '')." ".$this->data['status'];

        $admin = Admin::find(1);

        if(Setting::get('TWILIO_AUTH_SID')!= '' && Setting::get('TWILIO_AUTH_TOKEN')!='') {

            $twilio = new Client(Setting::get('TWILIO_AUTH_SID'), Setting::get('TWILIO_AUTH_TOKEN'));

            $twilio->messages->create('whatsapp:' . $admin->mobile, [
                "from" => 'whatsapp:' . config('services.twilio.whatsapp_from'),
                "body" => $admin_data['message']
            ]);

            if(isset($order->user->mobile)){

                $twilio->messages->create('whatsapp:' . $order->user->mobile, [
                    "from" => 'whatsapp:' . config('services.twilio.whatsapp_from'),
                    "body" => $user_message
                ]);

            }
           

        }

        // Log::info("admin data".print_r($admin_data, true));


        } catch(Exception $e) {

            Log::info("Error ".print_r($e->getMessage(), true));

        }
    }
}
Back to Directory File Manager