Some checks failed
Build and Push LST Docker Image / docker (push) Has been cancelled
70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
import { io, type Socket } from "socket.io-client";
|
|
import { createLogger } from "../logger/logger.controller.js";
|
|
import { systemSettings } from "../server.js";
|
|
import { getToken, odToken } from "./opendock.utils.js";
|
|
|
|
const log = createLogger({ module: "opendock", subModule: "releaseMonitor" });
|
|
const TWENTY_FOUR_HOURS = 24 * 60 * 60 * 1000;
|
|
let socket: Socket | null = null;
|
|
export const opendockSocketMonitor = async () => {
|
|
// checking if we actaully want to run this
|
|
if (!systemSettings.filter((n) => n.name === "opendock_sync")[0]?.active) {
|
|
log.info({}, "Opendock is not active");
|
|
}
|
|
|
|
if (!odToken.odToken) {
|
|
log.info({}, "Getting Auth Token");
|
|
await getToken();
|
|
}
|
|
|
|
if (
|
|
new Date(odToken.tokenDate || Date.now()).getTime() <
|
|
Date.now() - TWENTY_FOUR_HOURS
|
|
) {
|
|
log.info({}, "Refreshing Auth Token");
|
|
await getToken();
|
|
}
|
|
const baseSubspaceUrl = "wss://subspace.staging.opendock.com";
|
|
const url = `${baseSubspaceUrl}?token=${odToken.odToken}`;
|
|
socket = io(url, { transports: ["websocket"] }); // Enforce 'websocket' transport only.
|
|
|
|
socket.on("connect", () => {
|
|
console.log("Connected");
|
|
});
|
|
|
|
// socket.on("heartbeat", (data) => {
|
|
// console.log(data);
|
|
// });
|
|
|
|
socket.on("create-Appointment", () => {
|
|
//console.log("appt create:", data);
|
|
});
|
|
|
|
socket.on("update-Appointment", () => {
|
|
//console.log("appt update:", data);
|
|
});
|
|
|
|
socket.on("error", (data) => {
|
|
console.log("Error:", data);
|
|
});
|
|
|
|
// socket.onAny((event, ...args) => {
|
|
// console.log("Received event:", event, args);
|
|
// });
|
|
};
|
|
|
|
export const killOpendockSocket = () => {
|
|
if (!socket) {
|
|
console.log("No active socket to kill");
|
|
return;
|
|
}
|
|
|
|
console.log("🛑 Killing socket connection...");
|
|
|
|
socket.removeAllListeners(); // optional but clean
|
|
socket.disconnect();
|
|
socket = null;
|
|
|
|
console.log("✅ Socket killed");
|
|
};
|