add form request to start and finish api
This commit is contained in:
@@ -4,6 +4,8 @@ namespace App\Http\Controllers\V3\Dashboard\Mission;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\Mission\ControlUnit\FinishRequest;
|
||||
use App\Http\Requests\V3\Mission\ControlUnit\StartRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Mission;
|
||||
use App\Services\Cartables\Mission\ControlUnitService;
|
||||
@@ -19,7 +21,7 @@ class ControlUnitController extends Controller
|
||||
return response()->json($controlUnitService->datatable($request));
|
||||
}
|
||||
|
||||
public function start(Request $request, Mission $mission): JsonResponse
|
||||
public function start(StartRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request, $mission) {
|
||||
$mission->histories()->create([
|
||||
@@ -38,7 +40,7 @@ class ControlUnitController extends Controller
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function finish(Request $request, Mission $mission): JsonResponse
|
||||
public function finish(FinishRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request, $mission) {
|
||||
$mission->histories()->create([
|
||||
|
||||
30
app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php
Normal file
30
app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\ControlUnit;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class FinishRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->mission->state_id == MissionStates::START_MISSION->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
30
app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php
Normal file
30
app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\ControlUnit;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StartRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->mission->state_id == MissionStates::PENDING_CONFIRMATION->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -16,14 +16,10 @@ class ControlUnitService
|
||||
|
||||
public function dataTable(Request $request)
|
||||
{
|
||||
$fields = [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
];
|
||||
|
||||
$query = Mission::query()
|
||||
->where('state_id', '=', MissionStates::PENDING_CONFIRMATION->value)
|
||||
->whereIn('state_id', [
|
||||
MissionStates::PENDING_CONFIRMATION->value, MissionStates::START_MISSION->value
|
||||
])
|
||||
->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id);
|
||||
|
||||
return DataTableFacade::run(
|
||||
@@ -31,7 +27,11 @@ class ControlUnitService
|
||||
$request,
|
||||
allowedFilters: ['*'],
|
||||
allowedSortings: ['*'],
|
||||
allowedSelects: $fields
|
||||
allowedSelects: [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -15,11 +15,6 @@ class RequestPortalService
|
||||
public function datatable(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
$fields = [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
];
|
||||
$query = Mission::query();
|
||||
|
||||
if ($user->hasPermissionTo('manage-request-portal-city')) {
|
||||
@@ -34,7 +29,11 @@ class RequestPortalService
|
||||
$request,
|
||||
allowedFilters: ['*'],
|
||||
allowedSortings: ['*'],
|
||||
allowedSelects: $fields
|
||||
allowedSelects: [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -12,12 +12,6 @@ class TransportationUnitService
|
||||
{
|
||||
public function dataTable(Request $request)
|
||||
{
|
||||
$fields = [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
];
|
||||
|
||||
$query = Mission::query()
|
||||
->where('state_id', '=', MissionStates::REQUEST_CREATED->value)
|
||||
->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id);
|
||||
@@ -27,7 +21,11 @@ class TransportationUnitService
|
||||
$request,
|
||||
allowedFilters: ['*'],
|
||||
allowedSortings: ['*'],
|
||||
allowedSelects: $fields
|
||||
allowedSelects: [
|
||||
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
|
||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
|
||||
'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa'
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -202,8 +202,8 @@ Route::prefix('road_patrol')
|
||||
->controller(\App\Http\Controllers\V3\Dashboard\RoadPatrol\DetailController::class)
|
||||
->group(function () {
|
||||
Route::get('/{roadPatrol}', 'show')->name('show');
|
||||
Route::get('/machines/{roadPatrol}', 'roadPatrolMachine')->name('roadPatrolMachine');
|
||||
Route::get('/rahdaran/{roadPatrol}', 'roadPatrolRahdar')->name('roadPatrolRahdar');
|
||||
Route::get('/machines/{roadPatrol}', 'machines')->name('machines');
|
||||
Route::get('/rahdaran/{roadPatrol}', 'rahdaran')->name('rahdaran');
|
||||
});
|
||||
|
||||
Route::prefix('operator')
|
||||
|
||||
Reference in New Issue
Block a user