Files
shipping-portal/app/Http/Middleware/CheckForStorageInvoiceByTransactionId.php
T
2025-07-06 01:58:16 +08:00

48 lines
1.5 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Models\Transaction;
use Illuminate\Http\Request;
use App\Classes\General\LogHelper;
class CheckForStorageInvoiceByTransactionId
{
/** @var CheckStorageInvoiceTransactionProcessor */
private $storageInvoiceTransactionProcessor;
public function __construct(CheckStorageInvoiceTransactionProcessor $storageInvoiceTransactionProcessor)
{
$this->storageInvoiceTransactionProcessor = $storageInvoiceTransactionProcessor;
}
/**
* Handle an incoming request.
*
* @param Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
$transactionId = $request->route('transaction_id');
LogHelper::channel('storage_invoices')->info('CheckForStorageInvoiceByTransactionId: ' . $transactionId);
$storages = [];
try{
$transaction = Transaction::where('id', $transactionId)->first();
if($transaction){
$storages = $this->storageInvoiceTransactionProcessor->executeShippingTransaction($transaction);
}
} catch (\Exception $exception) {
$storages = [];
}
$request->merge(['storages' => $storages]);
return $next($request);
}
}