diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-11 01:36:09 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-11 01:38:43 -0400 |
| commit | a20297451b88c604b16a35223be4b25528713c6d (patch) | |
| tree | 98c44d57dc805bcf2453b23f74e60eb244f46e99 /app/node_modules/okdb | |
| parent | 4021d7846ce164f3f0c3cb37d3a1d82d2de489d9 (diff) | |
Implement FSDB.updateBatch and OKResource.updateBatch
Diffstat (limited to 'app/node_modules/okdb')
| -rw-r--r-- | app/node_modules/okdb/index.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/node_modules/okdb/index.js b/app/node_modules/okdb/index.js index c00087c..ffe3ff1 100644 --- a/app/node_modules/okdb/index.js +++ b/app/node_modules/okdb/index.js @@ -101,6 +101,26 @@ FSDB.prototype.update = function(collection, id, data) { } }; +/** + * TODO Should be atomic ¯\_(ツ)_/¯ + */ +FSDB.prototype.updateBatch = function(collection, ids, datas) { + var schema = this._schemas[collection]; + if (!schema) + return resolve(null, new Error('No such collection type')); + if (!ids || !ids.length || !datas || !datas.length || + ids.length !== datas.length) { + return resolve(null, new Error('Bad input')); + } + + var doc = this._db(collection); + var results = ids.map(function(id, i) { + return doc.chain().find(getQuery(schema, id)).assign(datas[i]).value(); + }); + + return resolve(results); +}; + FSDB.prototype.remove = function(collection, id) { var schema = this._schemas[collection]; if (!schema) |
