1
0
Fork 0
This repository has been archived on 2024-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
letu/sockets/get/agendaGet.js

39 lines
1.6 KiB
JavaScript

const models = require("../../models");
module.exports = socket => {
return async (data) => {
let startDate = data.startDate ? data.startDate : new Date(), endDate = data.endDate ? data.endDate : new Date();
let options = {where: {startDate: startDate, endDate: endDate}, include: []};
if (data.semesters) {
for (let semester of data.semesters) {
let s = await models.Semester.findByPk(semester);
if (!s) {
socket.emit("agendaGet", {error: {message: "semester_not_found"}});
return
} else
options.include.push({model: models.Semester, where: {id: s.id}, require: true});
}
}
if (data.groups) {
for (let group of data.groups) {
let g = await models.Group.findByPk(group);
if (!g) {
socket.emit("agendaGet", {error: {message: "group_not_found"}});
return
} else
options.include.push({model: models.Group, where: {id: g.id}, require: true});
}
}
if (data.teachers) {
for (let teacher of data.teachers) {
let t = await models.User.findByPk(teacher);
if (!t) {
socket.emit("agendaGet", {error: {message: "teacher_not_found"}});
return
} else
options.include.push({model: models.User, where: {id: t.email}, require: true});
}
}
socket.emit("agendaGet", await models.Event.findAll(options));
}
};