'Updated Booking', 'message' => 'You have successfully updated the Booking' ]; } /** @var CanUpdateBooking */ private $canUpdateBooking; /** @var FetchesBooking */ private $fetchesBooking; /** @var UpdateBookingAmountProcessor */ private $updateBookingAmountProcessor; /** * UpdateBookingAmountLogic constructor. * @param CanUpdateBooking $canUpdateBooking * @param FetchesBooking $fetchesBooking * @param UpdateBookingAmountProcessor $updateBookingAmountProcessor */ public function __construct(CanUpdateBooking $canUpdateBooking, FetchesBooking $fetchesBooking, UpdateBookingAmountProcessor $updateBookingAmountProcessor) { $this->canUpdateBooking = $canUpdateBooking; $this->fetchesBooking = $fetchesBooking; $this->updateBookingAmountProcessor = $updateBookingAmountProcessor; } /** * @param Request $request * @return JsonResponse * @throws MalformedRequestException */ public function logic(Request $request) : JsonResponse { $booking = $this->fetchesBooking->execute(['id' => $request->route('id')]); $fixAmount = floatval(str_replace(',', '', $request->input('fix_amount', $booking->fix_amount))); $this->updateBookingAmountProcessor->execute($booking, $fixAmount); return $this->resourceResponse(new BookingResource($booking)); } }