From b8ae0749a6e7f85edda8a0926e003cd561e4d172 Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Fri, 3 Apr 2015 02:28:12 -0400 Subject: Separate schema and resource concepts Also refactor a bit --- app/node_modules/okquery/index.js | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'app/node_modules/okquery/index.js') diff --git a/app/node_modules/okquery/index.js b/app/node_modules/okquery/index.js index 22dd74f..f5db3f0 100644 --- a/app/node_modules/okquery/index.js +++ b/app/node_modules/okquery/index.js @@ -8,40 +8,43 @@ function OKQuery(db, options) { options = options || {}; if (!db) throw new Error('No DB provided to query.'); - if (!options.name) - throw new Error('No name type provided to query'); - this.name = options.name; - this.get = createQuery(db, options); + if (!options.type) + throw new Error('No resource type provided to query'); + var type = options.type; + var id = options.id || '*'; + Object.defineProperty(this, 'type', { + value: type, + writable: false + }); + this.get = createQuery(db, type, id); } -function createQuery(db, config) { - var name = config.name; - var id = config.id || '*'; +function createQuery(db, type, id) { if (isDynamic(id)) { - return queryDynamic(db, name); + return queryDynamic(db, type); } else if (isSet(id)) { - return queryAll(db, name); + return queryAll(db, type); } else { - return querySingle(db, name, id); + return querySingle(db, type, id); } } -function queryDynamic(db, name) { +function queryDynamic(db, type) { return function(options) { options = options || {}; - return db.get(name, options.id); + return db.get(type, options.id); } } -function queryAll(db, name) { +function queryAll(db, type) { return function() { - return db.getAll(name); + return db.getAll(type); } } -function querySingle(db, name, id) { +function querySingle(db, type, id) { return function() { - return db.get(name, id); + return db.get(type, id); } } -- cgit v1.2.3-70-g09d2