Initial commit: Angular frontend and Expressjs backend

This commit is contained in:
chamikaJ
2024-05-17 09:32:30 +05:30
parent eb0a0d77d6
commit 298ca6beeb
3548 changed files with 193558 additions and 3 deletions

View File

@@ -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));
}
}