diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index 7dfcb39..c0287ac 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use App\Http\Resources\BlockerResource; use App\Http\Resources\SubTaskResource; use App\Models\Attachment; +use App\Models\Blocker; use App\Models\MasterTask; use App\Models\SubTask; use App\Models\User; @@ -55,15 +57,25 @@ class SubTaskController extends Controller $query->where('start', '>=', $parameters['start']); $query->where('end', '<=', $parameters['end']); })->get(); + + $userIdArray = User::whereHas('teams', function ($query) use ($parameters) { + $query->where('team_id', $parameters['team_id']); + })->get()->pluck('id')->toArray(); + } else if (isset($parameters['user_id'])) { $subtasks = SubTask::where('user_id', $parameters['user_id'])->whereHas('timeblocks', function ($query) use ($parameters) { $query->where('start', '>=', $parameters['start']); $query->where('end', '<=', $parameters['end']); })->get(); + + $userIdArray = [$parameters['user_id']]; } + $blockers = Blocker::whereIn('user_id', $userIdArray)->where('start', '>=', $parameters['start'])->where('end', '<=', $parameters['end'])->get(); + return response()->json([ - 'subtasks' => SubTaskResource::collection($subtasks) + 'subtasks' => SubTaskResource::collection($subtasks), + 'blockers' => BlockerResource::collection($blockers), ], 200); } diff --git a/be/app/Http/Resources/SubTaskResource.php b/be/app/Http/Resources/SubTaskResource.php index 779b4d3..e9b2124 100644 --- a/be/app/Http/Resources/SubTaskResource.php +++ b/be/app/Http/Resources/SubTaskResource.php @@ -19,7 +19,7 @@ class SubTaskResource extends JsonResource 'created_by' => $this->created_by, 'master_task_description' => $this->mastertask->description, 'description' => $this->description, - 'project_code' => $this->mastertask->project->code, + 'project_code' => ($this->mastertask->project) ? $this->mastertask->project->code : null, 'master_task_id' => $this->mastertask->id, 'master_task' => $this->mastertask->title, 'team_id' => ($this->mastertask->team) ? $this->mastertask->team->id : null, diff --git a/be/routes/api.php b/be/routes/api.php index e1b4a53..de61fd1 100644 --- a/be/routes/api.php +++ b/be/routes/api.php @@ -94,8 +94,9 @@ Route::middleware(['auth:sanctum'])->group(function () { Route::delete('/v1/subtasks/{id}', SubTaskController::class . '@delete'); + // zobrazovanie blockerov je na urovni /subtasks ednpointu Route::get('/v1/blockers/{id}', function ($id) { - return new BlockerResource( Blocker::find($id)); + return new BlockerResource(Blocker::find($id)); }); Route::post('/v1/blockers', BlockerController::class . '@store'); Route::put('/v1/blockers/{id}', BlockerController::class . '@update');