'Updated PackingList Status', 'message' => 'You have successfully updated the PackingList status' ]; } /** @var FetchesPackingList */ private $fetchesPackingList; /** @var UpdatesPackingListStatus */ private $updatesPackingListStatus; /** @var UpdateDoFromVTPortalProcessor */ private $updateDoFromVTPortalProcessor; /** * UpdatePackingListStatusLogic constructor. * @param FetchesPackingList $fetchesPackingList * @param UpdatesPackingListStatus $updatesPackingListStatus */ public function __construct(FetchesPackingList $fetchesPackingList, UpdatesPackingListStatus $updatesPackingListStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor) { $this->fetchesPackingList = $fetchesPackingList; $this->updatesPackingListStatus = $updatesPackingListStatus; $this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\InternalServerErrorException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \GuzzleHttp\Exception\GuzzleException */ public function logic(Request $request) : JsonResponse { $packingList = $this->fetchesPackingList->execute(['id' => $request->route('id')]); $packing_list = $this->updatesPackingListStatus->execute($packingList, $request->route('status')); $address = $packing_list->owner()->first()->addresses()->first(); $this->updateDoFromVTPortalProcessor->execute($address); return $this->resourceResponse(new PackingListResource($packing_list)); } }