Initial commit: Angular frontend and Expressjs backend
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import {IWorkLenzRequest} from "../interfaces/worklenz-request";
|
||||
import {IWorkLenzResponse} from "../interfaces/worklenz-response";
|
||||
|
||||
import db from "../config/db";
|
||||
import {ServerResponse} from "../models/server-response";
|
||||
import WorklenzControllerBase from "./worklenz-controller-base";
|
||||
import HandleExceptions from "../decorators/handle-exceptions";
|
||||
|
||||
export default class PersonalOverviewController extends WorklenzControllerBase {
|
||||
@HandleExceptions()
|
||||
public static async getTasksDueToday(req: IWorkLenzRequest, res: IWorkLenzResponse): Promise<IWorkLenzResponse> {
|
||||
const q = `
|
||||
SELECT id,
|
||||
name,
|
||||
(SELECT name FROM projects WHERE project_id = projects.id) AS project_name,
|
||||
(SELECT name FROM task_statuses WHERE id = t.status_id) AS status,
|
||||
(SELECT task_priorities.name FROM task_priorities WHERE id = t.priority_id) AS priority,
|
||||
start_date,
|
||||
end_date
|
||||
FROM tasks t
|
||||
JOIN tasks_assignees ta ON t.id = ta.task_id
|
||||
WHERE t.archived IS FALSE AND t.end_date::DATE = NOW()::DATE
|
||||
AND is_member_of_project(t.project_id, $2, $1)
|
||||
ORDER BY end_date DESC
|
||||
LIMIT 5;
|
||||
`;
|
||||
const result = await db.query(q, [req.user?.team_id || null, req.user?.id || null]);
|
||||
return res.status(200).send(new ServerResponse(true, result.rows));
|
||||
}
|
||||
|
||||
@HandleExceptions()
|
||||
public static async getTasksRemaining(req: IWorkLenzRequest, res: IWorkLenzResponse): Promise<IWorkLenzResponse> {
|
||||
const q = `
|
||||
SELECT id,
|
||||
name,
|
||||
(SELECT name FROM projects WHERE project_id = projects.id) AS project_name,
|
||||
(SELECT name FROM task_statuses WHERE id = t.status_id) AS status,
|
||||
(SELECT task_priorities.name FROM task_priorities WHERE id = t.priority_id) AS priority,
|
||||
start_date,
|
||||
end_date
|
||||
FROM tasks t
|
||||
JOIN tasks_assignees ta ON t.id = ta.task_id
|
||||
WHERE t.archived IS FALSE AND t.end_date::DATE > NOW()::DATE
|
||||
AND is_member_of_project(t.project_id, $2, $1)
|
||||
ORDER BY end_date DESC
|
||||
LIMIT 5;
|
||||
`;
|
||||
const result = await db.query(q, [req.user?.team_id || null, req.user?.id || null]);
|
||||
return res.status(200).send(new ServerResponse(true, result.rows));
|
||||
}
|
||||
|
||||
@HandleExceptions()
|
||||
public static async getTaskOverview(req: IWorkLenzRequest, res: IWorkLenzResponse): Promise<IWorkLenzResponse> {
|
||||
const q = `
|
||||
SELECT id,
|
||||
name,
|
||||
color_code,
|
||||
(SELECT MIN(start_date) FROM tasks WHERE archived IS FALSE AND project_id = projects.id) AS min_date,
|
||||
(SELECT MAX(end_date) FROM tasks WHERE archived IS FALSE AND project_id = projects.id) AS max_date
|
||||
FROM projects
|
||||
WHERE team_id = $1
|
||||
AND (CASE
|
||||
WHEN (is_owner($2, $1) OR
|
||||
is_admin($2, $1)) THEN TRUE
|
||||
ELSE is_member_of_project(projects.id, $2,
|
||||
$1) END)
|
||||
ORDER BY NAME;
|
||||
`;
|
||||
const result = await db.query(q, [req.user?.team_id || null, req.user?.id || null]);
|
||||
return res.status(200).send(new ServerResponse(true, result.rows));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user