const logger = require('./request-logger'); var MongoClient = require('mongodb').MongoClient; var config = require('./config'); var connection = {}; connection.reqMongo = async function (req,method, query, collection) { // console.log(req.id) var mongoData = config.get('mongoDB'); var url = "mongodb://"+mongoData.hopitalIp; var database = mongoData.hopitalName; var result = await mongoReq(req,url,database,method, query, collection); return result; } function mongoReq(req,url,database,method, query, collection){ logger.logSqlQuery({id : "session", reqId : req.id}, query); return new Promise((resolve, reject) => { MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) { if (err) { console.log(err) logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg); resolve({ resultCode : "50001", message : err.errmsg }); } switch (method) { case "GET": db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) { db.close(); if (err) { console.log(err) resolve(checkResponse(req,{err:err})); }else resolve(checkResponse(req,result)); }); break; case "POST": db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) { db.close(); if (err) { console.log(err) resolve(checkResponse(req,{err:err})); }else resolve(checkResponse(req,result)); }); break; case "PUT": db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) { db.close(); if (err) { console.log(err) resolve(checkResponse(req,{err:err})); }else resolve(checkResponse(req,result)); }); break; case "DELETE": db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) { db.close(); if (err) { console.log(err) resolve(checkResponse(req,{err:err})); }else resolve(checkResponse(req,result)); }); break; } }); }); } function checkResponse(req,response) { if(response.err) { logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg); var returnData = { resultCode : "50001", message : response.err.errmsg }; }else { logger.logSqlResult({id : "session", reqId : req.id}, response); var returnData = { resultCode : "20000", resultDescription : "Success", resultData : response }; } return returnData } module.exports = connection;