HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/app/Jobs/ImportBlacklistJob.php
<?php

namespace App\Jobs;

use App\Model\Blacklist;
use App\Library\Traits\Trackable;
use Exception;

class ImportBlacklistJob extends Base
{
    use Trackable;

    public $timeout = 7200;

    // @todo this should better be a constant
    protected $filepath;
    protected $customer;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($filepath, $customer = null)
    {
        $this->filepath = $filepath;
        $this->customer = $customer;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $this->monitor->setJsonData([
            'percentage' => 0,
            'total' => 0,
            'processed' => 0,
            'failed' => 0,
            'message' => 'Import is in progress...',
        ]);

        Blacklist::import($this->filepath, $this->customer, function ($processed, $total, $failed, $message) {
            $percentage = ($total && $processed) ? (int)($processed * 100 / $total) : 0;

            $this->monitor->updateJsonData([
                'percentage' => $percentage,
                'total' => $total,
                'processed' => $processed,
                'failed' => $failed,
                'message' => $message,
            ]);
        });
    }
}