'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); return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address))); } }