From 2569c6b5fb0d89a0f6489039edb3915d6b02b8bf Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Wed, 1 Mar 2023 11:54:51 +0100 Subject: [PATCH] no message --- .../Http/Controllers/MasterTaskController.php | 36 +++++++++++++++++++ be/routes/api.php | 1 + 2 files changed, 37 insertions(+) diff --git a/be/app/Http/Controllers/MasterTaskController.php b/be/app/Http/Controllers/MasterTaskController.php index 6bf8f64..8a6f62d 100644 --- a/be/app/Http/Controllers/MasterTaskController.php +++ b/be/app/Http/Controllers/MasterTaskController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Resources\MasterTaskResource; use App\Models\Attachment; use App\Models\MasterTask; use App\Models\User; @@ -10,6 +11,41 @@ use Illuminate\Support\Facades\Validator; class MasterTaskController extends Controller { + public function index(Request $request) + { + // get query parameter from request + $parameters = $request->query(); + + $mastertasks = MasterTask::select('*'); + + // filtrovanie na zaklade parametrov + foreach ( $parameters as $field => $value ) { + if (!$value) continue; + + switch ($field) { + case 'created_at': + $mastertasks->where($field, 'like', '%-' . $value . '-%'); + break; + + case 'employee_id': + $mastertasks->whereHas('subtasks', function ($query) use ($value) { + $query->where('user_id', $value); + }); + break; + + default: + $mastertasks->where($field, $value); + break; + } + } + + $mastertasks = $mastertasks->get(); + + return response()->json([ + 'mastertasks' => MasterTaskResource::collection($mastertasks) + ], 200); + } + public function store(Request $request) { $created_by = User::getUserIdFromBearerToken($request->bearerToken()); diff --git a/be/routes/api.php b/be/routes/api.php index 431e4b1..0e6fcd4 100644 --- a/be/routes/api.php +++ b/be/routes/api.php @@ -68,6 +68,7 @@ Route::middleware(['auth:sanctum'])->group(function () { return new MasterTaskResource( MasterTask::find($id)); }); + Route::get('/v1/mastertasks',MasterTaskController::class . '@index'); Route::post('/v1/mastertasks', MasterTaskController::class . '@store'); Route::put('/v1/mastertasks/{id}', MasterTaskController::class . '@update'); Route::delete('/v1/mastertasks/{id}', MasterTaskController::class . '@delete');