diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-03 02:28:12 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-03 02:28:12 -0400 |
| commit | b8ae0749a6e7f85edda8a0926e003cd561e4d172 (patch) | |
| tree | cbf7e35a550c8133ea5fad257997ecb7c9370ed8 /app/node_modules/okquery/index.js | |
| parent | 6fbccc554b2ab51f683718334338eae2b7b06200 (diff) | |
Separate schema and resource concepts
Also refactor a bit
Diffstat (limited to 'app/node_modules/okquery/index.js')
| -rw-r--r-- | app/node_modules/okquery/index.js | 35 |
1 files changed, 19 insertions, 16 deletions
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); } } |
