'Created PackingList', 'message' => 'You have successfully created a new PackingList' ]; } /** @var CreatePackingListProcessor */ private $createPackingListProcessor; /** @var FetchesOrder */ private $fetchesOrder; /** * CreatePackingListLogic constructor. * @param CreatePackingListProcessor $createPackingListProcessor * @param FetchesOrder $fetchesOrder */ public function __construct(CreatePackingListProcessor $createPackingListProcessor, FetchesOrder $fetchesOrder) { $this->createPackingListProcessor = $createPackingListProcessor; $this->fetchesOrder = $fetchesOrder; } /** * @param Request $request * @return JsonResponse */ public function logic(Request $request) : JsonResponse { $order = $this->fetchesOrder->execute(['reference' => $request->input('reference_number')]); $packingListObject = new PackingListObject($request->input('reference_number'), $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee->id, PackingListType::WAREHOUSE_RECEIVE_LIST, ApprovalStatus::PENDING_SUBMISSION); $packingList = $this->createPackingListProcessor->execute($packingListObject, $order); return $this->resourceResponse(new PackingListResource($packingList)); } }