Merge branch 'assign-packing-list' into 'master'

assign packing list to container

See merge request CIEFWorldwideSdnBhd/shipping-portal!63
This commit is contained in:
omair saleh
2021-09-27 09:01:15 +00:00
3 changed files with 89 additions and 0 deletions
@@ -0,0 +1,67 @@
<?php
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
use App\Http\Resources\ContainerResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AssignPackingListContainerLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => '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());
}
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\PackingLists\Containers;
use App\Classes\Modules\PackingLists\ControllersLogic\Containers\AssignPackingListContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AssignPackingListContainerController
{
/**
* @param Request $request
* @param AssignPackingListContainerLogic $logic
* @return JsonResponse
*/
public function assign(Request $request, AssignPackingListContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
+2
View File
@@ -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 () {