write crud for rahdaran

This commit is contained in:
2025-07-12 10:00:47 +03:30
parent 85c74b2ec6
commit 121d6b7521
4 changed files with 108 additions and 0 deletions

View File

@@ -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
{

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\V3\Rahdaran;
use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'name' => 'required|string|max:255',
'code' => 'required|string|max:255',
];
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\V3\Rahdaran;
use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'name' => 'required|string|max:255',
'code' => 'required|string|max:255',
];
}
}

View File

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