From 85d4d7e028d7443143519a7a9af0db51703c77f1 Mon Sep 17 00:00:00 2001 From: Roland Bernard <rolbernard@unibz.it> Date: Sun, 16 May 2021 23:30:09 +0200 Subject: [PATCH] Added a querry to get all assigned users of a task --- server/src/v1/task.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/server/src/v1/task.ts b/server/src/v1/task.ts index e00c3ce..5e45119 100644 --- a/server/src/v1/task.ts +++ b/server/src/v1/task.ts @@ -301,6 +301,45 @@ task.get('/:uuid/work', async (req, res) => { } }); +task.get('/:uuid/assigned', async (req, res) => { + try { + const id = req.params.uuid; + if (validate(id)) { + const users = await database('team_members') + .innerJoin('team_projects', 'team_members.team_id', 'team_projects.team_id') + .innerJoin('tasks', 'team_projects.project_id', 'tasks.project_id') + .innerJoin('task_assignees', 'tasks.id', 'task_assignees.task_id') + .innerJoin('users', 'task_assignees.user_id', 'users.id') + .select({ + id: 'users.id', + username: 'users.user_name', + email: 'users.email', + realname: 'users.real_name', + }) + .sum({ time: 'task_assignees.time' }) + .where({ + 'team_members.user_id': req.body.token.id, + 'tasks.id': id, + }) + .groupBy('users.id'); + res.status(200).json({ + status: 'success', + assigned: users, + }); + } else { + res.status(400).json({ + status: 'error', + message: 'malformed uuid', + }); + } + } catch (e) { + res.status(400).json({ + status: 'error', + message: 'failed to get assignees', + }); + } +}); + task.get('/:uuid', async (req, res) => { try { const id = req.params.uuid; -- GitLab