mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-21 21:44:09 +00:00
package switch packing list
This commit is contained in:
+68
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\PackingLists\ControllersLogic\Packages;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\PackingLists\Services\Packages\SwitchesPackagePackingList;
|
||||
use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject;
|
||||
use App\Http\Resources\PackageResource;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SwitchPackagePackingListLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Switched Package Packing List',
|
||||
'message' => 'You have successfully switched the Package Packing List'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var SwitchesPackagePackingList */
|
||||
private $switchesPackagePackingList;
|
||||
|
||||
/** @var FetchesPackage */
|
||||
private $fetchesPackage;
|
||||
|
||||
/** @var FetchesPackingList */
|
||||
private $fetchesPackingList;
|
||||
|
||||
/**
|
||||
* UpdatePackageLogic constructor.
|
||||
* @param SwitchesPackagePackingList $switchesPackagePackingList
|
||||
* @param FetchesPackage $fetchesPackage
|
||||
* @param FetchesPackingList $fetchesPackingList
|
||||
*/
|
||||
public function __construct(SwitchesPackagePackingList $switchesPackagePackingList, FetchesPackage $fetchesPackage, FetchesPackingList $fetchesPackingList)
|
||||
{
|
||||
$this->switchesPackagePackingList = $switchesPackagePackingList;
|
||||
$this->fetchesPackage = $fetchesPackage;
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$package = $this->fetchesPackage->execute(['id' => $request->route('id')]);
|
||||
|
||||
$packing_list = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]);
|
||||
|
||||
$query = $this->switchesPackagePackingList->execute($package, $packing_list);
|
||||
|
||||
return $this->resourceResponse(new PackageResource($query));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\PackingLists\Services\Packages;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Models\Package;
|
||||
use App\Models\PackingList;
|
||||
|
||||
class SwitchesPackagePackingList extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Package $model
|
||||
* @param int $status
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(Package $model, PackingList $packing_list) {
|
||||
|
||||
$model->packing_list_id = $packing_list->id;
|
||||
|
||||
return $this->handler($model);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PackingLists\Packages;
|
||||
|
||||
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\SwitchPackagePackingListLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SwitchPackagePackingListController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param SwitchPackagePackingListLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function switch(Request $request, SwitchPackagePackingListLogic $logic): JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,6 +24,7 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' =
|
||||
Route::post('/create', 'CreatePackageController@create')->name('create');
|
||||
Route::put('/update/{id}', 'UpdatePackageController@update')->name('update');
|
||||
Route::delete('/delete/{id}', 'DeletePackageController@delete')->name('delete');
|
||||
Route::put('/switch-packing-list/{id}', 'SwitchPackagePackingListController@switch')->name('switch.packing_list');
|
||||
|
||||
Route::group(['namespace' => 'PackageItems', 'prefix' => 'item', 'as' => 'item.'], function () {
|
||||
Route::get('/{id}/show', 'FetchPackageItemController@fetch')->name('show');
|
||||
|
||||
Reference in New Issue
Block a user