'Created Package', 'message' => 'You have successfully created a new Package' ]; } /** @var CanCreatePackageList */ private $canCreatePackageList; /** @var CreatesPackageList */ private $createsPackageList; /** @var CreatesPackage */ private $createsPackage; /** @var CreatesPackageItem */ private $createsPackageItem; /** * CreatePackageControllerLogic constructor. * @param CanCreatePackageList $canCreatePackage * @param CreatesPackageList $createsPackageList * @param CreatesPackage $createsPackage * @param CreatesPackageItem $createsPackageItem */ public function __construct(CanCreatePackageList $canCreatePackageList, CreatesPackageList $createsPackageList,CreatesPackage $createsPackage,CreatesPackageItem $createsPackageItem) { $this->canCreatePackageList = $canCreatePackageList; $this->createsPackageList = $createsPackageList; $this->createsPackage = $createsPackage; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $object = new PackagesListObject($request->input('order_id'),$request->input('packages')); $this->canCreatePackageList->passes($object); $query = $this->createsPackageList->execute($object); // dd($query->id); $query = $this->createsPackage->execute($object); return $this->resourceResponse(new PackageResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }