diff --git a/client/.env b/client/.env index b2775c6..d981e58 100644 --- a/client/.env +++ b/client/.env @@ -1,3 +1,4 @@ -# VITE_SERVER_URL=http://localhost:3001 -# VITE_SERVER_URL=http://192.168.1.170:3001 -VITE_SERVER_URL=https://crm.stream.graff.tech/api +# VITE_API_URL=http://localhost:3001 +# VITE_API_URL=http://192.168.1.170:3001 +VITE_API_URL=https://crm.stream.graff.tech/api +VITE_STREAM_URL=https://stream.graff.tech diff --git a/client/src/components/Card.tsx b/client/src/components/Card.tsx index ba1260f..326a59f 100644 --- a/client/src/components/Card.tsx +++ b/client/src/components/Card.tsx @@ -104,7 +104,10 @@ function Card({
{manager && ( - + )} @@ -119,7 +122,7 @@ function Card({
- {availableManagers?.length && ( + {availableManagers && availableManagers.length > 0 && ( { diff --git a/client/vite.config.ts b/client/vite.config.ts index 1b7a244..b704939 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -9,7 +9,7 @@ export default ({ mode }) => { server: { proxy: { "/api": { - target: process.env.VITE_SERVER_URL, + target: process.env.VITE_API_URL, changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, diff --git a/server/src/models/ScheduledSession.ts b/server/src/models/ScheduledSession.ts index c7c8b6d..9dd6a6b 100644 --- a/server/src/models/ScheduledSession.ts +++ b/server/src/models/ScheduledSession.ts @@ -36,11 +36,8 @@ const scheduledSessionSchema = new Schema( type: String, required: true, }, - adminInviteKey: { - type: String, - }, - userInviteKey: { - type: String, + activeSessionId: { + type: Schema.Types.ObjectId, }, }, { diff --git a/server/src/routes/companies.ts b/server/src/routes/companies.ts index 2097120..1a7c4da 100644 --- a/server/src/routes/companies.ts +++ b/server/src/routes/companies.ts @@ -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); diff --git a/server/src/routes/login.ts b/server/src/routes/login.ts index 2a97376..a525945 100644 --- a/server/src/routes/login.ts +++ b/server/src/routes/login.ts @@ -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 }); }); diff --git a/server/src/routes/registration.ts b/server/src/routes/registration.ts index 3e1b78d..de33828 100644 --- a/server/src/routes/registration.ts +++ b/server/src/routes/registration.ts @@ -32,7 +32,7 @@ router.post("/", async (req, res) => { await Token.create({ userId, accessToken }); - res.json({ accessToken }); + res.json({ accessToken, user }); }); const registerRouter = router; diff --git a/server/src/routes/scheduledSessions.ts b/server/src/routes/scheduledSessions.ts index b4a7759..219666e 100644 --- a/server/src/routes/scheduledSessions.ts +++ b/server/src/routes/scheduledSessions.ts @@ -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;