2023-01-06 00:58:55 +01:00
|
|
|
const { MongoClient } = require('mongodb');
|
|
|
|
const {
|
|
|
|
MONGO_HOST,
|
|
|
|
MONGO_PORT,
|
|
|
|
MONGO_USER,
|
|
|
|
MONGO_PASS,
|
|
|
|
MONGO_DB,
|
|
|
|
} = process.env;
|
|
|
|
|
|
|
|
const uri = `mongodb://${MONGO_USER}:${MONGO_PASS}@${MONGO_HOST}:${MONGO_PORT}/?maxPoolSize=20`;
|
|
|
|
|
2023-01-15 18:42:26 +01:00
|
|
|
const getMongoConnection = async() => {
|
|
|
|
const client = new MongoClient(uri);
|
|
|
|
return await client.connect();
|
|
|
|
};
|
|
|
|
|
|
|
|
const getMongoDatabase = (client, db) => {
|
|
|
|
const DB = db || MONGO_DB;
|
|
|
|
return client.db(DB);
|
|
|
|
};
|
|
|
|
|
|
|
|
const mongoExecute = async(fn, dbName = MONGO_DB) => {
|
|
|
|
let conn;
|
|
|
|
try {
|
|
|
|
conn = await getMongoConnection();
|
|
|
|
const db = conn.db(dbName);
|
|
|
|
const result = await fn(db, conn);
|
|
|
|
return result;
|
|
|
|
} catch (err) {
|
|
|
|
console.log('MOMGODB ERROR:', err.message);
|
|
|
|
} finally {
|
|
|
|
if (conn) {
|
|
|
|
await conn.close();
|
|
|
|
}
|
2023-01-06 00:58:55 +01:00
|
|
|
}
|
2023-01-15 18:42:26 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
mongoExecute,
|
|
|
|
getMongoConnection,
|
|
|
|
getMongoDatabase,
|
2023-01-06 00:58:55 +01:00
|
|
|
};
|