From 7c69c74f985ac9f01253eb273594793f0a847534 Mon Sep 17 00:00:00 2001 From: mhmj Date: Tue, 28 May 2019 14:30:46 +0800 Subject: [PATCH] Order-Change-Address --- .../Orders/UpdateOrderAddressLogic.php | 45 ++++++++++++++++++ .../DataTransferObjects/AddressObject.php | 37 +++++++++++++++ .../Orders/Services/UpdatesOrderAddress.php | 46 +++++++++++++++++++ .../Orders/UpdateOrderAddressController.php | 21 +++++++++ routes/api.php | 2 + 5 files changed, 151 insertions(+) create mode 100644 app/Classes/Modules/ControllersLogic/Orders/UpdateOrderAddressLogic.php create mode 100644 app/Classes/Modules/Orders/DataTransferObjects/AddressObject.php create mode 100644 app/Classes/Modules/Orders/Services/UpdatesOrderAddress.php create mode 100644 app/Http/Controllers/Orders/UpdateOrderAddressController.php diff --git a/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderAddressLogic.php b/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderAddressLogic.php new file mode 100644 index 0000000..c7eba21 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderAddressLogic.php @@ -0,0 +1,45 @@ +UpdatesOrderAddress = $UpdatesOrderAddress; + } + + public function execute(string $orderId, Request $request){ + try{ + $addressObject = new AddressObject($request->address_id); + return $this->UpdatesOrderAddress->execute($orderId,$addressObject); + + return new JsonResponse([],HttpStatus::RESOURCE_CREATED); + + } catch (\Exception $exception) { + throw new InternalServerErrorException("Failed to update address because{$exception->getMessage()}"); + } + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/DataTransferObjects/AddressObject.php b/app/Classes/Modules/Orders/DataTransferObjects/AddressObject.php new file mode 100644 index 0000000..7559e6b --- /dev/null +++ b/app/Classes/Modules/Orders/DataTransferObjects/AddressObject.php @@ -0,0 +1,37 @@ +addressId = $addressId; + } + + /** + * @return string + */ + public function getAddressId(): string + { + return $this->addressId; + } + + + + +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/Services/UpdatesOrderAddress.php b/app/Classes/Modules/Orders/Services/UpdatesOrderAddress.php new file mode 100644 index 0000000..1091738 --- /dev/null +++ b/app/Classes/Modules/Orders/Services/UpdatesOrderAddress.php @@ -0,0 +1,46 @@ +repository = $repository; + } + + + public function execute(string $orderId,AddressObject $addressObject){ + try{ + + $repository = $this->repository->findOrFail($orderId); + $repository->address_id = $addressObject->getAddressId(); + $repository->save(); + return new JsonResponse([],HttpStatus::OK); + + }catch (\Exception $exception){ + + throw new InternalServerErrorException("Failed to update address because {$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Orders/UpdateOrderAddressController.php b/app/Http/Controllers/Orders/UpdateOrderAddressController.php new file mode 100644 index 0000000..78f79ea --- /dev/null +++ b/app/Http/Controllers/Orders/UpdateOrderAddressController.php @@ -0,0 +1,21 @@ +execute($orderId,$request); + } + +} \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index b17edc2..b163f04 100644 --- a/routes/api.php +++ b/routes/api.php @@ -136,6 +136,8 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::post('/bulk-receive-notes', 'BulkReceiveNotesController@create')->name('bulk.receive.update'); + Route::post('/{orderId}/address','UpdateOrderAddressController@update')->name('address.update'); + }); // Service Routes