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;