From ad97658216d355f7e99609416e8fc777b3a8fc5c Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sat, 4 Jan 2025 16:04:11 +0330 Subject: [PATCH 1/2] create road observed filter datatable --- .../Controllers/V3/ObservedItemController.php | 25 +++---------------- routes/v3.php | 2 +- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/V3/ObservedItemController.php b/app/Http/Controllers/V3/ObservedItemController.php index 39169d72..2bc271ce 100644 --- a/app/Http/Controllers/V3/ObservedItemController.php +++ b/app/Http/Controllers/V3/ObservedItemController.php @@ -23,37 +23,20 @@ class ObservedItemController extends Controller public function filter(FilterRequest $request): JsonResponse { $columns = array( - 'id', 'item_id', 'sub_item_id' + 'id', 'item_id', 'road_patrol_id', 'roadPatrol.start_time', 'roadPatrol.end_time', ); $allowedFilters = $columns; $allowedSortings = $columns; - $data = ObservedItem::query()->whereNull('road_item_id') - ->when($request->start_date, function (Builder $query) use ($request) { - return $query->whereHas('roadPatrol', function (Builder $query) use ($request) { - $query->WhereBetween('start_time', [$request->start_date.' 00:00:00', $request->end_date.' 23:59:59']) - ->orWhereBetween('end_time', [$request->start_date.' 00:00:00', $request->end_date.' 23:59:59']); - }); - }) - ->when($request->road_patrol_id, function (Builder $query) use ($request) { - return $query->where('road_patrol_id', $request->road_patrol_id); - }) - ->when($request->item_id, function (Builder $query) use ($request) { - return $query->where('item_id', $request->item_id); - }) - ->selectRaw('id as item, item_id, item_name, sub_item_id, sub_item_name, local_name'); - - if($data->get()->isEmpty()) { - return $this->errorResponse('موردی یافت نشد'); - } + $data = ObservedItem::query()->whereNull('road_item_id'); $dataTable = DataTableFacade::run( $data, $request, allowedFilters: $allowedFilters, - allowedSortings: $allowedSortings); - + allowedSortings: $allowedSortings + ); return response()->json($dataTable); } diff --git a/routes/v3.php b/routes/v3.php index 6a71fb03..405f76c8 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -184,6 +184,6 @@ Route::prefix('observed_items') ->name('observedItem.') ->controller(ObservedItemController::class) ->group(function () { - Route::post('/filter', 'filter')->name('filter'); + Route::get('/filter', 'filter')->name('filter'); Route::get('/{observedItem}', 'show')->name('show'); }); From a4e32d49b23edf20068e4d3076ec04c20e9343c1 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sun, 5 Jan 2025 09:23:47 +0330 Subject: [PATCH 2/2] remove the form request --- .../Controllers/V3/ObservedItemController.php | 5 +-- .../V3/ObservedItem/FilterRequest.php | 39 ------------------- 2 files changed, 1 insertion(+), 43 deletions(-) delete mode 100644 app/Http/Requests/V3/ObservedItem/FilterRequest.php diff --git a/app/Http/Controllers/V3/ObservedItemController.php b/app/Http/Controllers/V3/ObservedItemController.php index 2bc271ce..1f4b7bd0 100644 --- a/app/Http/Controllers/V3/ObservedItemController.php +++ b/app/Http/Controllers/V3/ObservedItemController.php @@ -4,13 +4,10 @@ namespace App\Http\Controllers\V3; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; -use App\Http\Requests\V3\ObservedItem\FilterRequest; use App\Http\Traits\ApiResponse; use App\Models\ObservedItem; -use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Validator; class ObservedItemController extends Controller { @@ -20,7 +17,7 @@ class ObservedItemController extends Controller return $this->successResponse($observedItem); } - public function filter(FilterRequest $request): JsonResponse + public function filter(Request $request): JsonResponse { $columns = array( 'id', 'item_id', 'road_patrol_id', 'roadPatrol.start_time', 'roadPatrol.end_time', diff --git a/app/Http/Requests/V3/ObservedItem/FilterRequest.php b/app/Http/Requests/V3/ObservedItem/FilterRequest.php deleted file mode 100644 index 5c67f2c3..00000000 --- a/app/Http/Requests/V3/ObservedItem/FilterRequest.php +++ /dev/null @@ -1,39 +0,0 @@ -|string> - */ - public function rules(): array - { - return [ - 'start_date' => 'date_format:Y-m-d', - 'end_date' => 'date_format:Y-m-d|after_or_equal:start_date', - 'road_patrol_id' => 'numeric', - 'item_id' => 'numeric', - ]; - } - - public function attributes(): array - { - return [ - 'start_date' => 'ساعت شروع گشت', - 'end_date' => 'ساعت پایان گشت', - ]; - } -}