'Updated Address', 'message' => 'You have successfully set the default Address' ]; } /** @var FetchesAddress */ private $fetchesAddress; /** @var ResetsAddressesDefault */ private $resetsAddressesDefault; /** @var SetsAddressToDefault */ private $setsAddressToDefault; /** * SetAddressToDefaultLogic constructor. * @param FetchesAddress $fetchesAddress * @param ResetsAddressesDefault $resetsAddressesDefault * @param SetsAddressToDefault $setsAddressToDefault */ public function __construct(FetchesAddress $fetchesAddress, ResetsAddressesDefault $resetsAddressesDefault, SetsAddressToDefault $setsAddressToDefault) { $this->fetchesAddress = $fetchesAddress; $this->resetsAddressesDefault = $resetsAddressesDefault; $this->setsAddressToDefault = $setsAddressToDefault; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\MalformedRequestException */ public function logic(Request $request): JsonResponse { /** @var Address $address */ $address = $this->fetchesAddress->execute(['id' => $request->route('id')]); $this->resetsAddressesDefault->execute($address->owner, $address->type); $setAddress = $this->setsAddressToDefault->execute($address); //no relationships needed /* return fractal() ->item($setAddress, new AddressTransformer()) ->respond(200, [], JSON_PRETTY_PRINT);*/ return $this->resourceResponse(new AddressResource($address)); } }