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,48 @@
import {Server, Socket} from "socket.io";
import db from "../../config/db";
import {SocketEvents} from "../events";
import {getLoggedInUserIdFromSocket, log_error, notifyProjectUpdates} from "../util";
export async function on_task_timer_stop(_io: Server, socket: Socket, data?: string) {
try {
const body = JSON.parse(data as string);
const userId = getLoggedInUserIdFromSocket(socket);
const q = `
DO
$$
DECLARE
_start_time TIMESTAMPTZ;
_time_spent NUMERIC;
BEGIN
SELECT start_time FROM task_timers WHERE user_id = '${userId}' AND task_id = '${body.task_id}' INTO _start_time;
_time_spent = COALESCE(EXTRACT(EPOCH FROM
(DATE_TRUNC('second', (CURRENT_TIMESTAMP - _start_time::TIMESTAMPTZ)))::INTERVAL),
0);
IF (_time_spent > 0)
THEN
INSERT INTO task_work_log (time_spent, task_id, user_id, logged_by_timer, created_at)
VALUES (_time_spent, '${body.task_id}', '${userId}', TRUE, _start_time);
END IF;
DELETE FROM task_timers WHERE user_id = '${userId}' AND task_id = '${body.task_id}';
END
$$;
`;
await db.query(q, []);
socket.emit(SocketEvents.TASK_TIMER_STOP.toString(), {
id: body.task_id,
parent_task: body.parent_task,
});
notifyProjectUpdates(socket, body.task_id);
return;
} catch (error) {
log_error(error);
}
socket.emit(SocketEvents.TASK_TIMER_STOP.toString(), null);
}