Feat: implement queries using task for easier usage
This commit is contained in:
parent
47614c9637
commit
440b8e7f61
2 changed files with 98 additions and 37 deletions
29
lib/db.js
29
lib/db.js
|
|
@ -9,13 +9,28 @@ const extendedQueries = require('./extendedQueries')
|
|||
const pgp = Pgp({
|
||||
pgNative: true,
|
||||
extend (obj, dbContext) {
|
||||
obj.$any = (query, tables, variables) => extendedQueries.any(obj, dbContext, query, tables, variables)
|
||||
obj.$one = (query, tables, variables) => extendedQueries.one(obj, dbContext, query, tables, variables)
|
||||
obj.$oneOrNone = (query, tables, variables) => extendedQueries.oneOrNone(obj, dbContext, query, tables, variables)
|
||||
obj.$many = (query, tables, variables) => extendedQueries.many(obj, dbContext, query, tables, variables)
|
||||
obj.$manyOrNone = (query, tables, variables) => extendedQueries.manyOrNone(obj, dbContext, query, tables, variables)
|
||||
obj.$none = (query, tables, variables) => extendedQueries.none(obj, dbContext, query, tables, variables)
|
||||
obj.$result = (query, tables, variables, cb) => extendedQueries.result(obj, dbContext, query, tables, variables, cb)
|
||||
obj.taskEx = function () {
|
||||
const args = pgp.utils.taskArgs(arguments)
|
||||
const { schema } = args.options
|
||||
if ('schema' in args.options) {
|
||||
delete args.options.schema
|
||||
}
|
||||
if (schema) {
|
||||
return obj.task.call(this, args.options, t => {
|
||||
return t.none('SET search_path to $1:name', [schema])
|
||||
.then(args.cb.bind(this, t))
|
||||
})
|
||||
}
|
||||
return Promise.reject(new Error('No schema selected, cannot complete query'))
|
||||
}
|
||||
obj.$query = (query, values, qrm) => extendedQueries.query(obj, query, values, qrm)
|
||||
obj.$result = (query, variables, cb, thisArg) => extendedQueries.result(obj, query, variables, cb, thisArg)
|
||||
obj.$many = (query, variables) => extendedQueries.many(obj, query, variables)
|
||||
obj.$manyOrNone = (query, variables) => extendedQueries.manyOrNone(obj, query, variables)
|
||||
obj.$oneOrNone = (query, variables) => extendedQueries.oneOrNone(obj, query, variables)
|
||||
obj.$one = (query, variables) => extendedQueries.one(obj, query, variables)
|
||||
obj.$none = (query, variables) => extendedQueries.none(obj, query, variables)
|
||||
obj.$any = (query, variables) => extendedQueries.any(obj, query, variables)
|
||||
},
|
||||
error: (err, e) => {
|
||||
if (e.cn) logger.error('Database not reachable.')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue