Files
shipping-portal/app/Classes/Modules/Transactions/ControllersLogic/VerifyTransactionsLogic.php
T

56 lines
1.6 KiB
PHP

<?php
namespace App\Classes\Modules\Transactions\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Models\Transaction;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Http\Resources\TransactionVerifyResource;
class VerifyTransactionsLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Verify Transactions',
'message' => 'You have successfully verified submitted transactions'
];
}
/** @var CheckStorageInvoiceTransactionProcessor */
private $checkStorageInvoiceTransactionProcessor;
public function __construct(
CheckStorageInvoiceTransactionProcessor $checkStorageInvoiceTransactionProcessor
)
{
$this->checkStorageInvoiceTransactionProcessor = $checkStorageInvoiceTransactionProcessor;
}
public function logic(Request $request) : JsonResponse
{
$invoice_ids = json_decode($request->route('transaction_ids'));
$invoices = Transaction::whereIn('id', $invoice_ids)->get();
$result = $this->processInvoices($invoices);
return $this->collectionResponse(TransactionVerifyResource::collection($result));
}
private function processInvoices($invoices){
foreach ($invoices as $invoice) {
$storages = $this->checkStorageInvoiceTransactionProcessor->executeShippingTransaction($invoice);
$invoice['storages'] = $storages;
}
return $invoices;
}
}