'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); } }