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'); });