From d72990ce2c344e6188fcd72486555378f73fc39e Mon Sep 17 00:00:00 2001 From: inmake Date: Wed, 25 Oct 2023 13:25:10 +0500 Subject: [PATCH] upd --- server/src/index.ts | 2 ++ server/src/routes/scheduledSessions.ts | 24 ++++++++++++++++++ server/src/routes/schedules.ts | 35 ++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 server/src/routes/schedules.ts diff --git a/server/src/index.ts b/server/src/index.ts index db6464d..595fad5 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -11,6 +11,7 @@ import scheduledSessionsRouter from "./routes/scheduledSessions.js"; import usersRouter from "./routes/users.js"; import buildsRouter from "./routes/builds.js"; import actionsRouter from "./routes/actions.js"; +import schedulesRouter from "./routes/schedules.js"; const app = express(); const port = process.env.PORT || 3000; @@ -24,6 +25,7 @@ app.use("/login", loginRouter); app.use("/registration", registrationRouter); app.use("/actions", actionsRouter); app.use("/scheduled_sessions", scheduledSessionsRouter); +app.use("/schedules", schedulesRouter); app.use("/app", authMiddleware, appRouter); app.use("/companies", authMiddleware, companiesRouter); app.use("/users", authMiddleware, usersRouter); diff --git a/server/src/routes/scheduledSessions.ts b/server/src/routes/scheduledSessions.ts index cd79b8e..2f9bcda 100644 --- a/server/src/routes/scheduledSessions.ts +++ b/server/src/routes/scheduledSessions.ts @@ -6,6 +6,30 @@ import { addMinutes, endOfDay, parseISO, startOfDay } from "date-fns"; const scheduledSessionsRouter = Router(); +scheduledSessionsRouter.get("/builds/:buildId", async (req, res) => { + if (!req.params.buildId) { + res.json({ error: "Parameter `buildId` is required!" }); + return; + } + + if (!req.query.date) { + res.json({ error: "Query parameter `date` is required!" }); + return; + } + + const buildId = req.params.buildId; + const date = req.query.date as string; + const scheduledSessions = await ScheduledSession.find({ + buildId, + startAt: { + $gte: startOfDay(parseISO(date)), + $lt: endOfDay(parseISO(date)), + }, + }); + + res.json(scheduledSessions); +}); + scheduledSessionsRouter.get("/:buildId", async (req, res) => { if (!req.params.buildId) { res.json({ error: "Parameter `buildId` is required!" }); diff --git a/server/src/routes/schedules.ts b/server/src/routes/schedules.ts new file mode 100644 index 0000000..8cbb7ed --- /dev/null +++ b/server/src/routes/schedules.ts @@ -0,0 +1,35 @@ +import { Router } from "express"; +import Schedule from "../models/Schedule.js"; + +const schedulesRouter = Router(); + +schedulesRouter.get("/builds/:buildId", async (req, res) => { + const buildId = req.params.buildId; + const date = new Date(); + + const schedules = await Schedule.find({ + buildId, + startDate: { $lte: date }, + endDate: { $gte: date }, + }); + + if (!schedules.length) { + res.json({ error: "No data" }); + return; + } + + if (req.query.date) { + const schedule = await Schedule.findOne({ + buildId, + startDate: { $lte: date }, + endDate: { $gte: date }, + }); + + res.json(schedule); + return; + } + + res.json(schedules); +}); + +export default schedulesRouter;