From e84f9d8bef9620d4a829092e79ea775bd34b4d81 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Sat, 18 Sep 2021 13:40:15 +0800 Subject: [PATCH] assign packing list to container --- .../AssignPackingListContainerLogic.php | 67 +++++++++++++++++++ .../AssignPackingListContainerController.php | 20 ++++++ routes/packing_list.php | 2 + 3 files changed, 89 insertions(+) create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignPackingListContainerLogic.php create mode 100644 app/Http/Controllers/PackingLists/Containers/AssignPackingListContainerController.php diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignPackingListContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignPackingListContainerLogic.php new file mode 100644 index 00000000..33310711 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignPackingListContainerLogic.php @@ -0,0 +1,67 @@ + 'Assign Packing List Container', + 'message' => 'You have successfully assign Packing List to Container' + ]; + } + + /** @var FetchesContainer */ + private $fetchesContainer; + + /** @var FetchesPackingList */ + private $fetchesPackingList; + + /** + * DeleteContainerControllersLogic constructor. + * @param FetchesContainer $fetchesContainer + * @param FetchesPackingList $fetchesPackingList + */ + public function __construct(FetchesContainer $fetchesContainer, FetchesPackingList $fetchesPackingList) + { + $this->fetchesContainer = $fetchesContainer; + $this->fetchesPackingList = $fetchesPackingList; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + $container = $this->fetchesContainer->execute(['id' => $request->route('id')]); + $packing_list = $request->input('packing_list_id'); + + foreach ($packing_list as $key => $row) { + $packing_list_item = $this->fetchesPackingList->execute(['id' => $row]); + $container->packingLists()->attach($packing_list_item); + } + + return $this->resourceResponse(new ContainerResource($container)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Http/Controllers/PackingLists/Containers/AssignPackingListContainerController.php b/app/Http/Controllers/PackingLists/Containers/AssignPackingListContainerController.php new file mode 100644 index 00000000..7cda1111 --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/AssignPackingListContainerController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/routes/packing_list.php b/routes/packing_list.php index ea64c7e1..a636f853 100644 --- a/routes/packing_list.php +++ b/routes/packing_list.php @@ -16,6 +16,8 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' = Route::post('/create', 'CreateContainerController@create')->name('create'); Route::put('/update/{id}', 'UpdateContainerController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteContainerController@delete')->name('delete'); + + Route::put('/assign-packing_list/{id}', 'AssignPackingListContainerController@assign')->name('assign.packing_list'); }); Route::group(['namespace' => 'Packages', 'as' => 'package.', 'prefix' => 'package'], function () {