upd
This commit is contained in:
@@ -4,8 +4,7 @@ import Company from "../models/Company.js";
|
||||
const appRouter = Router();
|
||||
|
||||
appRouter.post("/", async (_req, res) => {
|
||||
const companies = await Company.find();
|
||||
console.log(companies);
|
||||
await Company.find();
|
||||
|
||||
res.json({ route: "app" });
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Router } from "express";
|
||||
import Company from "../models/Company.js";
|
||||
import { parseISO, startOfDay, endOfDay } from "date-fns";
|
||||
import ScheduledSession from "../models/ScheduledSession.js";
|
||||
|
||||
const companiesRouter = Router();
|
||||
|
||||
@@ -82,4 +83,102 @@ companiesRouter.get(
|
||||
}
|
||||
);
|
||||
|
||||
companiesRouter.put(
|
||||
"/:id/scheduled_sessions/:scheduledSessionId",
|
||||
async (req, res) => {
|
||||
if (req.params.id != res.locals.user.companyId) {
|
||||
res.json({ error: "Access denied!" });
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const scheduledSession = await ScheduledSession.findById(
|
||||
req.params.scheduledSessionId
|
||||
);
|
||||
|
||||
const scheduledSessionAtSameTime = await ScheduledSession.find({
|
||||
startAt: scheduledSession?.startAt,
|
||||
userId: req.body.userId,
|
||||
});
|
||||
|
||||
if (scheduledSessionAtSameTime.length) {
|
||||
res.json({ error: "Scheduled session at same time" });
|
||||
return;
|
||||
}
|
||||
|
||||
const updatedScheduledSession = await ScheduledSession.findOneAndUpdate(
|
||||
{
|
||||
_id: req.params.scheduledSessionId,
|
||||
companyId: req.params.id,
|
||||
},
|
||||
req.body,
|
||||
{
|
||||
new: true,
|
||||
upsert: true,
|
||||
}
|
||||
);
|
||||
|
||||
res.json(updatedScheduledSession);
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
res.json({ error });
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
companiesRouter.get(
|
||||
"/:id/builds/:buildId/scheduled_sessions/:scheduledSessionId/availableManagers",
|
||||
async (req, res) => {
|
||||
if (!req.query.startAt) {
|
||||
res.json({ error: "No dateTime" });
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const scheduledSession = await ScheduledSession.findById(
|
||||
req.params.scheduledSessionId
|
||||
);
|
||||
|
||||
const scheduledSessionsAtSameTime = await ScheduledSession.find({
|
||||
companyId: req.params.id,
|
||||
buildId: req.params.buildId,
|
||||
startAt: req.query.startAt,
|
||||
});
|
||||
|
||||
const { users }: any = await Company.findById(req.params.id).populate(
|
||||
"users"
|
||||
);
|
||||
|
||||
let userIds = users.map((user: any) => user.id);
|
||||
|
||||
console.log(scheduledSession?.userId);
|
||||
|
||||
for (const userId of userIds) {
|
||||
console.log(userId);
|
||||
}
|
||||
|
||||
let sessionsUserIds: any[] = [];
|
||||
|
||||
for (const session of scheduledSessionsAtSameTime) {
|
||||
if (session.userId) {
|
||||
sessionsUserIds.push(session.userId.toString());
|
||||
}
|
||||
}
|
||||
|
||||
const filteredUserIds = userIds.filter(
|
||||
(userId: any) => !sessionsUserIds.includes(userId)
|
||||
);
|
||||
|
||||
filteredUserIds.push(scheduledSession?.userId);
|
||||
|
||||
res.json(filteredUserIds);
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
res.json({ error });
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
export default companiesRouter;
|
||||
|
||||
Reference in New Issue
Block a user