Initial commit: Angular frontend and Expressjs backend
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import {Server, Socket} from "socket.io";
|
||||
import db from "../../config/db";
|
||||
import {SocketEvents} from "../events";
|
||||
|
||||
import {log_error} from "../util";
|
||||
import TasksControllerV2 from "../../controllers/tasks-controller-v2";
|
||||
|
||||
interface ITaskSubscribeRequest {
|
||||
mode: number;
|
||||
task_id: string;
|
||||
user_id: string;
|
||||
team_member_id: string;
|
||||
}
|
||||
|
||||
export async function on_task_subscriber_change(_io: Server, socket: Socket, data?: ITaskSubscribeRequest) {
|
||||
if (!data) return;
|
||||
|
||||
try {
|
||||
const isSubscribe = data.mode == 0;
|
||||
const q = isSubscribe
|
||||
? `INSERT INTO task_subscribers (user_id, task_id, team_member_id, action)
|
||||
VALUES ($1, $2, $3, 'WHEN_DONE');`
|
||||
: `DELETE
|
||||
FROM task_subscribers
|
||||
WHERE user_id = $1
|
||||
AND task_id = $2
|
||||
AND team_member_id = $3;`;
|
||||
await db.query(q, [data.user_id, data.task_id, data.team_member_id]);
|
||||
|
||||
const subscribers = await TasksControllerV2.getTaskSubscribers(data.task_id);
|
||||
socket.emit(SocketEvents.TASK_SUBSCRIBERS_CHANGE.toString(), subscribers);
|
||||
|
||||
return;
|
||||
} catch (error) {
|
||||
log_error(error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user