'Created PackingList', 'message' => 'You have successfully created a new PackingList' ]; } /** @var CanCreateContainerPackingList */ private $canCreateContainerPackingList; /** @var FetchesPackingList */ private $fetchesPackingList; /** @var CreatesPackingList */ private $createsContainerPackingList; public function __construct(CanCreateContainerPackingList $canCreateContainerPackingList, FetchesPackingList $fetchesPackingList, CreatesContainerPackingList $createsContainerPackingList) { $this->canCreateContainerPackingList = $canCreateContainerPackingList; $this->fetchesPackingList = $fetchesPackingList; $this->createsContainerPackingList = $createsContainerPackingList; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function logic(Request $request) : JsonResponse { $packingList = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]); $object = new ContainerPackingListObject( $packingList->id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference')); $this->canCreateContainerPackingList->passes($object); $query = $this->createsContainerPackingList->execute($object); return $this->resourceResponse(new ContainerPackingListResource($query)); } }