summaryrefslogtreecommitdiff
path: root/lib/db/crud.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/db/crud.js')
-rw-r--r--lib/db/crud.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/db/crud.js b/lib/db/crud.js
new file mode 100644
index 0000000..fb32690
--- /dev/null
+++ b/lib/db/crud.js
@@ -0,0 +1,40 @@
+module.exports = function(model) {
+ return {
+ index: (q) => {
+ return model.query( (qb) => {
+ const limit = q.limit || 100
+ const offset = q.offset || 0
+ if (limit) {
+ delete q.limit
+ }
+ if (q.offset) {
+ delete q.offset
+ }
+ if (Object.keys(q).length > 0) qb.where(q)
+ qb.orderBy("id", "desc")
+ if (limit) qb.limit( limit )
+ if (offset) qb.offset( offset )
+ // console.log(qb)
+ return qb
+ }).fetchAll()
+ },
+ show: (id) => {
+ return new model({'id': id}).fetch()
+ },
+ show_ids: (ids) => {
+ return model.query( (qb) => {
+ qb.whereIn('id', ids)
+ return qb
+ }).fetchAll()
+ },
+ create: (data) => {
+ return new model(data).save()
+ },
+ update: (id, data) => {
+ return new model({'id': id}).save(data)
+ },
+ destroy: (id) => {
+ return new model({'id': id}).destroy(data)
+ },
+ }
+} \ No newline at end of file