add managers

This commit is contained in:
srgooglo 2022-05-10 20:45:24 +02:00
parent df151c5a0a
commit f00a15548b
3 changed files with 59 additions and 0 deletions

View 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)
})
}
}

View File

@ -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]
}
}

View File

@ -0,0 +1,2 @@
export { default as DbManager } from "./DbManager"
export { default as SessionsManager } from "./SessionsManager"