This commit is contained in:
2023-12-01 14:42:46 +05:00
parent 651edbe69f
commit 29148afe9c
10 changed files with 57 additions and 34 deletions
+2 -5
View File
@@ -36,11 +36,8 @@ const scheduledSessionSchema = new Schema(
type: String,
required: true,
},
adminInviteKey: {
type: String,
},
userInviteKey: {
type: String,
activeSessionId: {
type: Schema.Types.ObjectId,
},
},
{
+20 -16
View File
@@ -183,33 +183,37 @@ companiesRouter.get(
req.params.scheduledSessionId
);
const scheduledSessionUserId = scheduledSession?.userId;
if (!scheduledSession) {
res.json({ error: "Scheduled session not found" });
return;
}
const scheduledSessionsAtSameTime = await ScheduledSession.find({
companyId: req.params.id,
const buildUsers = await BuildUser.find({ buildId: req.params.buildId });
let buildUserIds = buildUsers.map((buildUser) =>
buildUser.userId.toString()
);
const scheduledSessionsAtTime = await ScheduledSession.find({
buildId: req.params.buildId,
startAt: req.query.startAt,
});
const { users }: any = await Company.findById(req.params.id).populate(
"users"
);
const scheduledSessionAtTimeUserIds: any[] = [];
const companyUserIds: any[] = users.map((user: any) => user.id);
const sessionsUserIds: any[] = [];
for (const sessionAtSameTime of scheduledSessionsAtSameTime) {
if (sessionAtSameTime.userId) {
sessionsUserIds.push(sessionAtSameTime.userId.toString());
for (const scheduledSessionAtTime of scheduledSessionsAtTime) {
if (scheduledSessionAtTime.userId) {
scheduledSessionAtTimeUserIds.push(
scheduledSessionAtTime.userId.toString()
);
}
}
const filteredUserIds = companyUserIds.filter(
(userId: any) => !sessionsUserIds.includes(userId)
const filteredUserIds: any[] = buildUserIds.filter(
(buildUserId) => !scheduledSessionAtTimeUserIds.includes(buildUserId)
);
if (scheduledSessionUserId) {
filteredUserIds.push(scheduledSessionUserId.toString());
if (scheduledSession.userId) {
filteredUserIds.push(scheduledSession.userId);
}
res.json(filteredUserIds);
+3 -1
View File
@@ -29,7 +29,9 @@ router.post("/", async (req, res) => {
expiresIn: "365d",
});
await Token.create({ userId: user.id, accessToken });
const userId = user.id;
await Token.create({ userId, accessToken });
res.json({ accessToken, user });
});
+1 -1
View File
@@ -32,7 +32,7 @@ router.post("/", async (req, res) => {
await Token.create({ userId, accessToken });
res.json({ accessToken });
res.json({ accessToken, user });
});
const registerRouter = router;
+19 -3
View File
@@ -3,10 +3,18 @@ import ScheduledSession from "../models/ScheduledSession.js";
import Build from "../models/Build.js";
import Schedule from "../models/Schedule.js";
import { addMinutes, endOfDay, parseISO, startOfDay } from "date-fns";
import { v4 as uuidv4 } from "uuid";
const scheduledSessionsRouter = Router();
scheduledSessionsRouter.get("/", async (_req, res) => {
const scheduledSessions = await ScheduledSession.find({
startAt: { $gte: startOfDay(new Date()) },
endAt: { $lte: endOfDay(new Date()) },
});
res.json(scheduledSessions);
});
scheduledSessionsRouter.get("/:id", async (req, res) => {
const scheduledSession = await ScheduledSession.findById(req.params.id);
@@ -114,11 +122,19 @@ scheduledSessionsRouter.post("/", async (req, res) => {
clientName: client.name,
clientEmail: client.email,
clientPhone: client.phone,
adminInviteKey: uuidv4(),
userInviteKey: uuidv4(),
});
res.json({ ok: 1, scheduleSession });
});
scheduledSessionsRouter.put("/:id", async (req, res) => {
const scheduledSession = await ScheduledSession.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true, upsert: true }
);
res.json(scheduledSession);
});
export default scheduledSessionsRouter;