Blame view

utils/mongoDB.js 3.56 KB
49559b6c   sumatek   merge
1
const logger = require('./request-logger');
6fc87409   sumatek   update structure
2
3
4
5
6
7
8
9
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');
49559b6c   sumatek   merge
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    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) {
0b6272e0   sumatek   update template
25
                console.log(err)
57d157f6   sumatek   add stats post
26
                logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg);
0b6272e0   sumatek   update template
27
28
                resolve({
                    resultCode : "50001",
57d157f6   sumatek   add stats post
29
                    message : err.errmsg
2853a670   sumatek   update log
30
31
                });
            }
57d157f6   sumatek   add stats post
32
33
34
35

            switch (method) {
                case "GET":
                    db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) {
2853a670   sumatek   update log
36
                    db.close();
57d157f6   sumatek   add stats post
37
    
2853a670   sumatek   update log
38
                    if (err) {
57d157f6   sumatek   add stats post
39
                        console.log(err)                    
0b6272e0   sumatek   update template
40
41
42
43
44
                        resolve(checkResponse(req,{err:err}));
                    }else
                        resolve(checkResponse(req,result));
                    });
                    break;
49559b6c   sumatek   merge
45
46
47
48
                case "POST":
                    db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) {
                    db.close();
    
0b6272e0   sumatek   update template
49
50
                    if (err) {
                        console.log(err)                    
49559b6c   sumatek   merge
51
                        resolve(checkResponse(req,{err:err}));
0b6272e0   sumatek   update template
52
53
                    }else
                        resolve(checkResponse(req,result));
49559b6c   sumatek   merge
54
                    });
0b6272e0   sumatek   update template
55
56
                    break;
                case "PUT":
30fb6c36   sumatek   update fixbug post
57
                    db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) {
49559b6c   sumatek   merge
58
59
                    db.close();
    
0b6272e0   sumatek   update template
60
61
                    if (err) {
                        console.log(err)                    
30fb6c36   sumatek   update fixbug post
62
                        resolve(checkResponse(req,{err:err}));
0b6272e0   sumatek   update template
63
64
                    }else
                        resolve(checkResponse(req,result));
49559b6c   sumatek   merge
65
66
67
                    });
                    break;
                case "DELETE":
0b6272e0   sumatek   update template
68
69
                    db.db(database).collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) {
                    db.close();
49559b6c   sumatek   merge
70
    
0b6272e0   sumatek   update template
71
72
73
74
75
76
                    if (err) {
                        console.log(err)                    
                        resolve(checkResponse(req,{err:err}));
                    }else
                        resolve(checkResponse(req,result));
                    });
49559b6c   sumatek   merge
77
78
                    break;
                
0b6272e0   sumatek   update template
79
80
            }

49559b6c   sumatek   merge
81
            
0b6272e0   sumatek   update template
82
83
84
85
86
87
        });
    });
    
}

function checkResponse(req,response)
49559b6c   sumatek   merge
88
89
90
{
    

0b6272e0   sumatek   update template
91
    if(response.err)
49559b6c   sumatek   merge
92
93
94
95
96
    {
        logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg);
        var returnData = {
            resultCode : "50001",
            message : response.err.errmsg
30fb6c36   sumatek   update fixbug post
97
        };
0b6272e0   sumatek   update template
98
99
100
101
    }else
    {
        logger.logSqlResult({id : "session", reqId : req.id}, response);
        var returnData = {
49559b6c   sumatek   merge
102
            resultCode : "20000",
0b6272e0   sumatek   update template
103
104
105
106
107
            resultDescription : "Success",
            resultData : response
        };
    }

30fb6c36   sumatek   update fixbug post
108
109
110
111
112
    return returnData
}


module.exports = connection;
5a3cfae2   sumatek   update log

5a3cfae2   sumatek   update log

49559b6c   sumatek   merge