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