Files
exchange-2.0/app/Classes/Modules/Transactions/ControllersLogic/ETLPurchaseOrderTransactionLogic.php
T
2025-12-27 14:44:01 +08:00

70 lines
2.3 KiB
PHP

<?php
namespace App\Classes\Modules\Transactions\ControllersLogic;
use App\Classes\Exceptions\InternalServerErrorException;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Transactions\Processors\ETLPurchaseOrderTransactionProcessor;
use App\Classes\Modules\Transactions\Standards\Rules\CanETLPurchaseOrder;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ETLPurchaseOrderTransactionLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification(): array
{
return [
'title' => 'ETL Purchase Order',
'message' => 'You have successfully etl purchase order document'
];
}
/** @var CanETLPurchaseOrder */
private $canETLPurchaseOrder;
/** @var ETLPurchaseOrderTransactionProcessor */
private $etlPurchaseOrderTransactionProcessor;
/**
* ETLPurchaseOrderTransactionLogic constructor.
* @param CanETLPurchaseOrder $canETLPurchaseOrder
* @param ETLPurchaseOrderTransactionProcessor $etlPurchaseOrderTransactionProcessor
*/
public function __construct(CanETLPurchaseOrder $canETLPurchaseOrder, ETLPurchaseOrderTransactionProcessor $etlPurchaseOrderTransactionProcessor)
{
$this->canETLPurchaseOrder = $canETLPurchaseOrder;
$this->etlPurchaseOrderTransactionProcessor = $etlPurchaseOrderTransactionProcessor;
}
/**
* @param Request $request
* @param string $id
* @return JsonResponse
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\InternalServerErrorException
*/
public function logic(Request $request, $id = ''): JsonResponse
{
$this->canETLPurchaseOrder->passes();
if ($request->has('products') && is_array($request->input('products'))) {
$products = $request->input('products');
$productsMetadata = $request->input('productsMetadata');
}
try{
$products = $this->etlPurchaseOrderTransactionProcessor->execute($products, $productsMetadata);
} catch (\Exception $exception) {
throw new InternalServerErrorException('Something went wrong!');
}
return $this->response($products);
}
}