diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 02e8bfea..12ebc614 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -2,7 +2,10 @@ namespace App\Http\Controllers\V3; +use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; +use App\Http\Requests\V3\Rahdaran\StoreRequest; +use App\Http\Requests\V3\Rahdaran\UpdateRequest; use App\Http\Traits\ApiResponse; use App\Models\Rahdaran; use Illuminate\Http\JsonResponse; @@ -12,6 +15,45 @@ class RahdaranController extends Controller { use ApiResponse; + public function index(Request $request): JsonResponse + { + return response()->json(DataTableFacade::run( + Rahdaran::query(), + $request, + allowedFilters: ['*'], + allowedSortings: ['*']) + ); + } + + public function store(StoreRequest $request): JsonResponse + { + Rahdaran::query()->create([ + 'name' =>$request->name, + 'code' =>$request->code, + ]); + return $this->successResponse(); + } + + public function show(Rahdaran $rahdaran): JsonResponse + { + return $this->successResponse($rahdaran); + } + + public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse + { + $rahdaran->update([ + 'name' =>$request->name, + 'code' =>$request->code, + ]); + return $this->successResponse(); + } + + public function destroy(Rahdaran $rahdaran): JsonResponse + { + $rahdaran->delete(); + return $this->successResponse(); + } + public function list(): JsonResponse { return $this->successResponse(Rahdaran::all()); diff --git a/app/Http/Requests/V3/Rahdaran/StoreRequest.php b/app/Http/Requests/V3/Rahdaran/StoreRequest.php new file mode 100644 index 00000000..e9436240 --- /dev/null +++ b/app/Http/Requests/V3/Rahdaran/StoreRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules(): array + { + return [ + 'name' => 'required|string|max:255', + 'code' => 'required|string|max:255', + ]; + } +} diff --git a/app/Http/Requests/V3/Rahdaran/UpdateRequest.php b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php new file mode 100644 index 00000000..9a8bc794 --- /dev/null +++ b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules(): array + { + return [ + 'name' => 'required|string|max:255', + 'code' => 'required|string|max:255', + ]; + } +} diff --git a/routes/v3.php b/routes/v3.php index 2f02e612..5017c06c 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -179,8 +179,13 @@ Route::prefix('rahdaran') ->name('rahdaran.') ->controller(RahdaranController::class) ->group(function () { + Route::get('/', 'index')->name('index'); Route::get('/list', 'list')->name('list'); Route::get('/search', 'search')->name('search'); + Route::post('/', 'store')->name('store'); + Route::get('/{rahdaran}', 'show')->name('show'); + Route::post('/{rahdaran}', 'update')->name('update'); + Route::delete('/{rahdaran}', 'destroy')->name('destroy'); }); Route::prefix('fms_vehicle')