This commit is contained in:
2024-06-06 18:15:03 +05:00
parent 3728d49ad9
commit 6f6555e1c1
3 changed files with 108 additions and 2 deletions
+2 -1
View File
@@ -1,2 +1,3 @@
PORT=4000
MONGO_URI=mongodb://root:p62Z!ZatgY25@194.26.138.94:27017
MONGO_URI=mongodb://root:p62Z!ZatgY25@194.26.138.94:27017
CRM_API_URL=https://crm.stream.graff.tech/api
+46
View File
@@ -189,6 +189,52 @@ async function checkActiveSessions() {
}
}
}
async function checkScheduledSessions() {
try {
const scheduledSessions = await got_cjs_1.default
.get(`${process.env.CRM_API_URL}/scheduled_sessions`)
.json();
if (!scheduledSessions.length)
return;
for (const session of scheduledSessions) {
if ((0, date_fns_1.isAfter)(new Date(), (0, date_fns_1.parseISO)(session.startAt)) &&
!session.activeSessionId) {
console.log("session.buildId", session.buildId);
const { build } = await got_cjs_1.default
.get(`${process.env.CRM_API_URL}/builds/${session.buildId}`)
.json();
console.log("build", build);
const result = await got_cjs_1.default
.get(`https://coord.graff.tech/start?build=${build}&location=a1`)
.json();
if (!result.stream) {
console.log("Not result");
return;
}
const result2 = await got_cjs_1.default
.put(`${process.env.CRM_API_URL}/scheduled_sessions/${session.id}`, {
json: {
activeSessionId: result.stream,
},
})
.json();
console.log("CRON Start session: ", result2);
}
else if ((0, date_fns_1.isAfter)(new Date(), (0, date_fns_1.parseISO)(session.endAt))) {
const result = await got_cjs_1.default
.post(`https://coord.graff.tech/active_sessions/${session.activeSessionId}/end`)
.json();
console.log("CRON End active session: ", result);
}
}
}
catch (error) {
console.log("Error: ", error.message);
}
}
node_cron_1.default.schedule("* * * * *", () => {
checkActiveSessions();
});
node_cron_1.default.schedule("* * * * *", () => {
checkScheduledSessions();
});
+60 -1
View File
@@ -8,7 +8,7 @@ import got from "got-cjs";
import Build from "./models/Build";
import { AccessToken } from "livekit-server-sdk";
import cron from "node-cron";
import { differenceInMinutes } from "date-fns";
import { differenceInMinutes, isAfter, parseISO } from "date-fns";
connectDB();
@@ -217,6 +217,65 @@ async function checkActiveSessions() {
}
}
async function checkScheduledSessions() {
try {
const scheduledSessions: any = await got
.get(`${process.env.CRM_API_URL}/scheduled_sessions`)
.json();
if (!scheduledSessions.length) return;
for (const session of scheduledSessions) {
if (
isAfter(new Date(), parseISO(session.startAt)) &&
!session.activeSessionId
) {
console.log("session.buildId", session.buildId);
const { build }: any = await got
.get(`${process.env.CRM_API_URL}/builds/${session.buildId}`)
.json();
console.log("build", build);
const result: any = await got
.get(`https://coord.graff.tech/start?build=${build}&location=a1`)
.json();
if (!result.stream) {
console.log("Not result");
return;
}
const result2 = await got
.put(`${process.env.CRM_API_URL}/scheduled_sessions/${session.id}`, {
json: {
startAt: session.startAt,
endAt: session.endAt,
activeSessionId: result.stream,
},
})
.json();
console.log("CRON Start session: ", result2);
} else if (isAfter(new Date(), parseISO(session.endAt))) {
const result = await got
.post(
`https://coord.graff.tech/active_sessions/${session.activeSessionId}/end`
)
.json();
console.log("CRON End active session: ", result);
}
}
} catch (error) {
console.log("Error: ", (error as Error).message);
}
}
cron.schedule("* * * * *", () => {
checkActiveSessions();
});
cron.schedule("* * * * *", () => {
checkScheduledSessions();
});