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 () {