pg-essential
Version:
All the basic functions required to interact with postgres
66 lines (58 loc) • 1.99 kB
JavaScript
const pool = require('./pool')
executeQuery = (method, query, params, tableName) => {
return getPool().then((p) => {
return p.getClient().then((connection) => {
return connection.client[method](query, params, tableName).then((results) => {
connection.done();
return results;
}).catch((err) => {
connection.done();
return Promise.reject(err);
})
});
});
}
getPool = () => {
let pl = new pool({
host: global.config.db.host,
port: global.config.db.port,
database: global.config.db.database,
user: global.config.db.user,
password: global.config.db.password
});
return Promise.resolve(pl);
}
module.exports = class {
static execute(query, params) {
return executeQuery('execute', query, params);
}
static fetchOne(query, params) {
return executeQuery('fetchOne', query, params);
}
static executeBulkInsertion(query, params, tableName) {
return executeQuery('executeBulkInsertion', query, params, tableName);
}
static fetchAll(query, params) {
return executeQuery('fetchAll', query, params);
}
static executeTransaction(callback) {
return executeQuery('executeTransaction', callback);
}
static executeWithResult(query, params) {
return this.getPool().then((p) => {
return p.getClient().then((connection) => {
return new Promise((resolve, reject) => {
connection.client.executeWithResult(query, params, (err, results) => {
if (err) {
connection.done();
reject(err);
} else {
connection.done();
resolve(results);
}
});
});
});
});
}
}