diff --git a/server/src/v1/project.test.ts b/server/src/v1/project.test.ts index 3ee499bc2d98de7bb9fad87626936da33cea4652..463cafad65663901b9fcde3983bb617b1657cc1e 100644 --- a/server/src/v1/project.test.ts +++ b/server/src/v1/project.test.ts @@ -102,6 +102,7 @@ describe('GET /project/:uuid/tasks', () => { priority: 'low', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [], dependencies: [ '00000000-0000-4000-8000-000000000005' ], requirements: [], @@ -116,6 +117,7 @@ describe('GET /project/:uuid/tasks', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-11-20'), + color: '#f00', assigned: [ { user: '00000000-0000-4000-8000-000000000000', time: 120, finished: false } ], dependencies: [ ], requirements: [ @@ -141,6 +143,7 @@ describe('GET /project/:uuid/tasks', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], @@ -163,6 +166,7 @@ describe('GET /project/:uuid/tasks', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], diff --git a/server/src/v1/project.ts b/server/src/v1/project.ts index cf3422cddbc582a4ff98555b7e7377fe1e9a29ac..a84905c2a4e8be3faab66ca950f28481287f7f72 100644 --- a/server/src/v1/project.ts +++ b/server/src/v1/project.ts @@ -106,6 +106,7 @@ project.get('/:uuid/tasks', async (req, res) => { const tasks = 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('projects', 'tasks.project_id', 'projects.id') .leftJoin('task_requirements', 'tasks.id', 'task_requirements.task_id') .leftJoin('task_dependencies', 'tasks.id', 'task_dependencies.task_id') .leftJoin('task_assignees', 'tasks.id', 'task_assignees.task_id') @@ -119,6 +120,7 @@ project.get('/:uuid/tasks', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', requirement_role: 'task_requirements.role_id', requirement_time: 'task_requirements.time', assigned_user: 'task_assignees.user_id', diff --git a/server/src/v1/task.test.ts b/server/src/v1/task.test.ts index 7561db6b7627a1e951314dd08eafaeabd449e179..90ed11850afc650223543d99d4b2a2886de54a2f 100644 --- a/server/src/v1/task.test.ts +++ b/server/src/v1/task.test.ts @@ -32,6 +32,7 @@ describe('GET /task', () => { priority: 'medium', created: Date.parse('2020-10-05'), edited: Date.parse('2020-10-10'), + color: '#00f', assigned: [ ], dependencies: [ ], requirements: [ @@ -56,6 +57,7 @@ describe('GET /task', () => { priority: 'high', created: Date.parse('2020-10-10'), edited: Date.parse('2020-10-15'), + color: '#0f0', assigned: [ ], dependencies: [ ], requirements: [ @@ -80,6 +82,7 @@ describe('GET /task', () => { priority: 'low', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [], dependencies: [ '00000000-0000-4000-8000-000000000005' ], requirements: [], @@ -94,6 +97,7 @@ describe('GET /task', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-11-20'), + color: '#f00', assigned: [ { user: '00000000-0000-4000-8000-000000000000', time: 120, finished: false } ], dependencies: [ ], requirements: [ @@ -111,6 +115,7 @@ describe('GET /task', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], @@ -125,6 +130,7 @@ describe('GET /task', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], @@ -158,6 +164,7 @@ describe('GET /task/open', () => { priority: 'medium', created: Date.parse('2020-10-05'), edited: Date.parse('2020-10-10'), + color: '#00f', assigned: [ ], dependencies: [ ], requirements: [ @@ -182,6 +189,7 @@ describe('GET /task/open', () => { priority: 'low', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [], dependencies: [ '00000000-0000-4000-8000-000000000005' ], requirements: [], @@ -196,6 +204,7 @@ describe('GET /task/open', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-11-20'), + color: '#f00', assigned: [ { user: '00000000-0000-4000-8000-000000000000', time: 120, finished: false } ], dependencies: [ ], requirements: [ @@ -232,6 +241,7 @@ describe('GET /task/closed', () => { priority: 'high', created: Date.parse('2020-10-10'), edited: Date.parse('2020-10-15'), + color: '#0f0', assigned: [ ], dependencies: [ ], requirements: [ @@ -256,6 +266,7 @@ describe('GET /task/closed', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], @@ -289,6 +300,7 @@ describe('GET /task/suspended', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-10-20'), + color: '#f00', assigned: [ ], dependencies: [ ], requirements: [ ], @@ -322,6 +334,7 @@ describe('GET /task/possible', () => { priority: 'medium', created: Date.parse('2020-10-05'), edited: Date.parse('2020-10-10'), + color: '#00f', assigned: [ ], dependencies: [ ], requirements: [ @@ -346,6 +359,7 @@ describe('GET /task/possible', () => { priority: 'urgent', created: Date.parse('2020-10-15'), edited: Date.parse('2020-11-20'), + color: '#f00', assigned: [ { user: '00000000-0000-4000-8000-000000000000', time: 120, finished: false } ], dependencies: [ ], requirements: [ @@ -373,6 +387,7 @@ describe('GET /task/:uuid', () => { priority: 'medium', created: Date.parse('2020-10-05'), edited: Date.parse('2020-10-10'), + color: '#00f', assigned: [ ], dependencies: [ ], requirements: [ diff --git a/server/src/v1/task.ts b/server/src/v1/task.ts index f452ad893a8764cff96b0fdbf74ca83ae9432b0d..556c08fe10625bffe27588f4f6b10ceebe50d3aa 100644 --- a/server/src/v1/task.ts +++ b/server/src/v1/task.ts @@ -30,6 +30,7 @@ export interface Task { assigned: Array<TaskAssignment>; created: number; edited: number; + color: string; } export function generateFromFlatResult(results: any[]): Task[] { @@ -47,6 +48,7 @@ export function generateFromFlatResult(results: any[]): Task[] { priority: row.priority, created: row.created, edited: row.edited, + color: row.color, requirements: [], assigned: [], dependencies: [], @@ -97,6 +99,7 @@ task.get('/', async (req, res) => { const tasks = 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('projects', 'tasks.project_id', 'projects.id') .leftJoin('task_requirements', 'tasks.id', 'task_requirements.task_id') .leftJoin('task_dependencies', 'tasks.id', 'task_dependencies.task_id') .leftJoin('task_assignees', 'tasks.id', 'task_assignees.task_id') @@ -110,6 +113,7 @@ task.get('/', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', requirement_role: 'task_requirements.role_id', requirement_time: 'task_requirements.time', assigned_user: 'task_assignees.user_id', @@ -137,6 +141,7 @@ task.get('/:status(open|closed|suspended)', async (req, res) => { const tasks = 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('projects', 'tasks.project_id', 'projects.id') .leftJoin('task_requirements', 'tasks.id', 'task_requirements.task_id') .leftJoin('task_dependencies', 'tasks.id', 'task_dependencies.task_id') .leftJoin('task_assignees', 'tasks.id', 'task_assignees.task_id') @@ -150,6 +155,7 @@ task.get('/:status(open|closed|suspended)', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', requirement_role: 'task_requirements.role_id', requirement_time: 'task_requirements.time', assigned_user: 'task_assignees.user_id', @@ -178,6 +184,7 @@ task.get('/possible', async (req, res) => { const tasks = 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('projects', 'tasks.project_id', 'projects.id') .leftJoin('task_requirements', 'tasks.id', 'task_requirements.task_id') .leftJoin('task_dependencies', 'tasks.id', 'task_dependencies.task_id') .leftJoin({ 'require': 'tasks' }, 'task_dependencies.requires_id', 'require.id') @@ -192,6 +199,7 @@ task.get('/possible', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', requirement_role: 'task_requirements.role_id', requirement_time: 'task_requirements.time', assigned_user: 'task_assignees.user_id', @@ -350,6 +358,7 @@ task.get('/:uuid', async (req, res) => { const task = 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('projects', 'tasks.project_id', 'projects.id') .select({ id: 'tasks.id', project: 'tasks.project_id', @@ -360,6 +369,7 @@ task.get('/:uuid', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', }) .where({ 'team_members.user_id': req.body.token.id, diff --git a/server/src/v1/user.ts b/server/src/v1/user.ts index ebe8b3a0d77a698ea8d4ca56dd1429c0e79a73a8..65ea7c4ba969ab771df47939b1b2f9ff15a3ef64 100644 --- a/server/src/v1/user.ts +++ b/server/src/v1/user.ts @@ -121,6 +121,7 @@ user.get('/tasks', async (req, res) => { try { const tasks = await database({ 'ut': 'task_assignees' }) .innerJoin('tasks', 'ut.task_id', 'tasks.id') + .innerJoin('projects', 'tasks.project_id', 'projects.id') .leftJoin('task_requirements', 'tasks.id', 'task_requirements.task_id') .leftJoin('task_dependencies', 'tasks.id', 'task_dependencies.task_id') .leftJoin('task_assignees', 'tasks.id', 'task_assignees.task_id') @@ -134,6 +135,7 @@ user.get('/tasks', async (req, res) => { priority: 'tasks.priority', created: 'tasks.created', edited: 'tasks.edited', + color: 'projects.color', requirement_role: 'task_requirements.role_id', requirement_time: 'task_requirements.time', assigned_user: 'task_assignees.user_id',