From 121d6b75215ffd020a6c4660c2accecc58a40c3d Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sat, 12 Jul 2025 10:00:47 +0330 Subject: [PATCH 1/2] write crud for rahdaran --- .../Controllers/V3/RahdaranController.php | 45 +++++++++++++++++++ .../Requests/V3/Rahdaran/StoreRequest.php | 29 ++++++++++++ .../Requests/V3/Rahdaran/UpdateRequest.php | 29 ++++++++++++ routes/v3.php | 5 +++ 4 files changed, 108 insertions(+) create mode 100644 app/Http/Requests/V3/Rahdaran/StoreRequest.php create mode 100644 app/Http/Requests/V3/Rahdaran/UpdateRequest.php diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 02e8bfea..4b859b62 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; @@ -11,6 +14,48 @@ use Illuminate\Http\Request; class RahdaranController extends Controller { use ApiResponse; + public function index(Request $request): JsonResponse + { + $allowedFilters = ['*']; + $allowedSortings = ['*']; + + $query = Rahdaran::query(); + $data = DataTableFacade::run( + $query, + $request, + allowedFilters: $allowedFilters, + allowedSortings: $allowedSortings); + return response()->json($data); + } + + 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 { diff --git a/app/Http/Requests/V3/Rahdaran/StoreRequest.php b/app/Http/Requests/V3/Rahdaran/StoreRequest.php new file mode 100644 index 00000000..2e343af5 --- /dev/null +++ b/app/Http/Requests/V3/Rahdaran/StoreRequest.php @@ -0,0 +1,29 @@ +|string> + */ + 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..4dded087 --- /dev/null +++ b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php @@ -0,0 +1,29 @@ +|string> + */ + 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..49950c76 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -179,6 +179,11 @@ Route::prefix('rahdaran') ->name('rahdaran.') ->controller(RahdaranController::class) ->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/store', 'store')->name('store'); + Route::get('/{roadItemsProject}', 'show')->name('show'); + Route::post('/{roadItemsProject}', 'update')->name('update'); + Route::post('/delete/{roadItemsProject}', 'destroy')->name('destroy'); Route::get('/list', 'list')->name('list'); Route::get('/search', 'search')->name('search'); }); From 5ddbcab6bca5cbdd13ea7aad337d2602a3974d00 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sat, 12 Jul 2025 13:17:14 +0330 Subject: [PATCH 2/2] improve crude code for rahdaran --- app/Http/Controllers/V3/RahdaranController.php | 15 ++++++--------- app/Http/Requests/V3/Rahdaran/StoreRequest.php | 5 +++-- app/Http/Requests/V3/Rahdaran/UpdateRequest.php | 5 +++-- routes/v3.php | 8 ++++---- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 4b859b62..12ebc614 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -14,18 +14,15 @@ use Illuminate\Http\Request; class RahdaranController extends Controller { use ApiResponse; + public function index(Request $request): JsonResponse { - $allowedFilters = ['*']; - $allowedSortings = ['*']; - - $query = Rahdaran::query(); - $data = DataTableFacade::run( - $query, + return response()->json(DataTableFacade::run( + Rahdaran::query(), $request, - allowedFilters: $allowedFilters, - allowedSortings: $allowedSortings); - return response()->json($data); + allowedFilters: ['*'], + allowedSortings: ['*']) + ); } public function store(StoreRequest $request): JsonResponse diff --git a/app/Http/Requests/V3/Rahdaran/StoreRequest.php b/app/Http/Requests/V3/Rahdaran/StoreRequest.php index 2e343af5..e9436240 100644 --- a/app/Http/Requests/V3/Rahdaran/StoreRequest.php +++ b/app/Http/Requests/V3/Rahdaran/StoreRequest.php @@ -2,6 +2,7 @@ namespace App\Http\Requests\V3\Rahdaran; +use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; class StoreRequest extends FormRequest @@ -11,13 +12,13 @@ class StoreRequest extends FormRequest */ public function authorize(): bool { - return false; + return true; } /** * Get the validation rules that apply to the request. * - * @return array|string> + * @return array */ public function rules(): array { diff --git a/app/Http/Requests/V3/Rahdaran/UpdateRequest.php b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php index 4dded087..9a8bc794 100644 --- a/app/Http/Requests/V3/Rahdaran/UpdateRequest.php +++ b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php @@ -2,6 +2,7 @@ namespace App\Http\Requests\V3\Rahdaran; +use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; class UpdateRequest extends FormRequest @@ -11,13 +12,13 @@ class UpdateRequest extends FormRequest */ public function authorize(): bool { - return false; + return true; } /** * Get the validation rules that apply to the request. * - * @return array|string> + * @return array */ public function rules(): array { diff --git a/routes/v3.php b/routes/v3.php index 49950c76..5017c06c 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -180,12 +180,12 @@ Route::prefix('rahdaran') ->controller(RahdaranController::class) ->group(function () { Route::get('/', 'index')->name('index'); - Route::post('/store', 'store')->name('store'); - Route::get('/{roadItemsProject}', 'show')->name('show'); - Route::post('/{roadItemsProject}', 'update')->name('update'); - Route::post('/delete/{roadItemsProject}', 'destroy')->name('destroy'); 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')