diff --git a/packages/streaming-server/src/managers/DbManager/index.js b/packages/streaming-server/src/managers/DbManager/index.js new file mode 100644 index 00000000..3531eb2c --- /dev/null +++ b/packages/streaming-server/src/managers/DbManager/index.js @@ -0,0 +1,40 @@ +import mongoose from "mongoose" + +function parseConnectionString(obj) { + const { db_user, db_driver, db_name, db_pwd, db_hostname, db_port } = obj + return `${db_driver ?? "mongodb"}://${db_user ? `${db_user}` : ""}${db_pwd ? `:${db_pwd}` : ""}${db_user ? "@" : ""}${db_hostname ?? "localhost"}:${db_port ?? ""}/${db_name ?? ""}` +} + +export default class DBManager { + constructor() { + this.env = process.env + } + + connect = () => { + return new Promise((resolve, reject) => { + try { + console.log("🌐 Trying to connect to DB...") + const dbUri = parseConnectionString(this.env) + + //console.log(dbUri) + + mongoose.connect(dbUri, { + useNewUrlParser: true, + useUnifiedTopology: true + }) + .then((res) => { return resolve(true) }) + .catch((err) => { return reject(err) }) + } catch (err) { + return reject(err) + } + }).then(done => { + console.log(`✅ Connected to DB`) + }).catch((error) => { + console.log(`❌ Failed to connect to DB, retrying...\n`) + console.log(error) + setTimeout(() => { + this.connect() + }, 1000) + }) + } +} \ No newline at end of file diff --git a/packages/streaming-server/src/managers/SessionsManager/index.js b/packages/streaming-server/src/managers/SessionsManager/index.js new file mode 100644 index 00000000..554c1e48 --- /dev/null +++ b/packages/streaming-server/src/managers/SessionsManager/index.js @@ -0,0 +1,17 @@ +export default class SessionsManager { + constructor() { + this.sessions = {} + } + + newSession = (id, session) => { + this.sessions[id] = session + } + + getSession = (id) => { + return this.sessions[id] + } + + removeSession = (id) => { + delete this.sessions[id] + } +} \ No newline at end of file diff --git a/packages/streaming-server/src/managers/index.js b/packages/streaming-server/src/managers/index.js new file mode 100644 index 00000000..11ce56ad --- /dev/null +++ b/packages/streaming-server/src/managers/index.js @@ -0,0 +1,2 @@ +export { default as DbManager } from "./DbManager" +export { default as SessionsManager } from "./SessionsManager"