Code sync from Shipping Portal, independent deployment of Vue Polling, Performance Improvement and tweaking for better user experience

This commit is contained in:
Dillon Ngo
2023-12-30 18:35:17 +08:00
parent 6da337b9dc
commit bf5ea2b2f2
26 changed files with 809 additions and 178 deletions
@@ -4,15 +4,11 @@ namespace App\Classes\Modules\Documents\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Documents\Services\ListsDocuments;
use App\Classes\Modules\Jobs\Services\CreatesJobResult;
use App\Classes\Modules\Jobs\DataTransferObjects\ListGenericJobObject;
use App\Classes\Jobs\ListDocumentsJob;
use App\Http\Resources\DocumentResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Classes\General\Helper;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;
class ListDocumentJobLogic extends AbstractControllerLogic
@@ -28,6 +24,19 @@ class ListDocumentJobLogic extends AbstractControllerLogic
];
}
/** @var CreatesJobResult */
private $createsJobResult;
/**
* ListDocumentJobLogic constructor.
* @param CreatesJobResult $createsJobResult
*/
public function __construct(CreatesJobResult $createsJobResult)
{
$this->createsJobResult = $createsJobResult;
}
/**
* @param Request $request
* @return JsonResponse
@@ -42,33 +51,25 @@ class ListDocumentJobLogic extends AbstractControllerLogic
'type' => $user->type,
];
$userInfoJson = json_encode($userInfo);
$requestSignature = md5($userInfoJson . $request->fullUrl());
$listGenericJobObject = new ListGenericJobObject(
$request->fullUrl(),
$request->all(),
$requestSignature,
null,
$jobId,
$userInfo
);
ListDocumentsJob::dispatch($listGenericJobObject);
//cief todo: remove comments
// // Create your job instance with delay, so we can back here within delay and take control in our hands.
// $job = new ListDocuments($listGenericJobObject);
// $job->delay(now()->addSeconds(5));
// // Dispath your job with our custom_dispatch helper. This will return job id from jobs table
// // $jobId = $this->custom_dispatch($job);
$result = [];
$result['job_id'] = $jobId;
$this->createsJobResult->execute($listGenericJobObject);
return $this->response(['data' => $result]);
}
//cief todo: no longer need jobId
// function custom_dispatch($job): int {
// return app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch($job);
// }
}