diff --git a/app/Http/Controllers/V3/ObservedItemController.php b/app/Http/Controllers/V3/ObservedItemController.php index 39169d72..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,40 +17,23 @@ 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', '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/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' => 'ساعت پایان گشت', - ]; - } -} 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'); });