mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +00:00
add managers
This commit is contained in:
parent
df151c5a0a
commit
f00a15548b
40
packages/streaming-server/src/managers/DbManager/index.js
Normal file
40
packages/streaming-server/src/managers/DbManager/index.js
Normal file
@ -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)
|
||||
})
|
||||
}
|
||||
}
|
@ -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]
|
||||
}
|
||||
}
|
2
packages/streaming-server/src/managers/index.js
Normal file
2
packages/streaming-server/src/managers/index.js
Normal file
@ -0,0 +1,2 @@
|
||||
export { default as DbManager } from "./DbManager"
|
||||
export { default as SessionsManager } from "./SessionsManager"
|
Loading…
x
Reference in New Issue
Block a user