'Updated PackageItem', 'message' => 'You have successfully updated the PackageItem' ]; } /** @var CanUpdatePackageItem */ private $canUpdatePackageItem; /** @var UpdatesPackageItem */ private $updatesPackageItem; /** @var FetchesPackageItem */ private $fetchesPackageItem; /** * UpdatePackageItemLogic constructor. * @param CanUpdatePackageItem $canUpdatePackageItem * @param UpdatesPackageItem $updatesPackageItem * @param FetchesPackageItem $fetchesPackageItem */ public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesPackageItem $fetchesPackageItem) { $this->canUpdatePackageItem = $canUpdatePackageItem; $this->updatesPackageItem = $updatesPackageItem; $this->fetchesPackageItem = $fetchesPackageItem; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $packageItem = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); $object = new PackageItemObject( $packageItem->package_id, $request->input('name'), $packageItem->reference, $request->input('description'), $request->input('quantity'), $request->input('uom'), $request->input('price'), $request->input('total'), $request->input('status')); $this->canUpdatePackageItem->passes($object); $query = $this->updatesPackageItem->execute($packageItem, $object); return $this->resourceResponse(new PackageItemResource($query)); } }