viewmodel
Advanced tools
Comparing version 1.0.3 to 1.1.0
@@ -266,9 +266,6 @@ 'use strict'; | ||
find: function(query, callback) { | ||
find: function(query, queryOptions, callback) { | ||
this.checkConnection(); | ||
callback = callback || query; | ||
query = arguments.length === 2 ? query: {}; | ||
var self = this; | ||
@@ -286,2 +283,7 @@ | ||
// if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) { | ||
// query.limit = queryOptions.limit; | ||
// query.skip = queryOptions.skip; | ||
// } | ||
this.db.view('collection/find', query, function(err, docs) { | ||
@@ -306,2 +308,6 @@ var res = []; | ||
if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) { | ||
res = res.slice(queryOptions.skip, queryOptions.limit + queryOptions.skip + 1); | ||
} | ||
callback(err, res); | ||
@@ -308,0 +314,0 @@ }); |
@@ -8,3 +8,4 @@ 'use strict'; | ||
ConcurrencyError = require('../concurrencyError'), | ||
_ = require('lodash'); | ||
_ = require('lodash'), | ||
store = {}; | ||
@@ -46,4 +47,2 @@ function deepFind (obj, pattern) { | ||
Repository.store = {}; | ||
_.extend(Repository.prototype, { | ||
@@ -73,3 +72,3 @@ | ||
var data = Repository.store[this.collectionName] ? Repository.store[this.collectionName][id] : undefined; | ||
var data = store[this.collectionName] ? store[this.collectionName][id] : undefined; | ||
if (!data) { | ||
@@ -84,12 +83,10 @@ return callback(null, new ViewModel({ id: id }, this)); | ||
find: function(query, callback) { | ||
find: function(query, queryOptions, callback) { | ||
this.checkConnection(); | ||
callback = callback || query; | ||
// Bind to data source | ||
var vms = Repository.store[this.collectionName]; | ||
var vms = _.values(store[this.collectionName]) || []; | ||
// Filter for query object | ||
if(arguments.length === 2) { | ||
if (!_.isEmpty(query)) { | ||
vms = _.filter(vms, function(vm) { | ||
@@ -106,2 +103,6 @@ var deepFound = deepFind(vm, _.keys(query)[0]); | ||
if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) { | ||
vms = vms.slice(queryOptions.skip, queryOptions.limit + queryOptions.skip + 1); | ||
} | ||
var self = this; | ||
@@ -122,6 +123,6 @@ | ||
var col = Repository.store[this.collectionName]; | ||
var col = store[this.collectionName]; | ||
if (!col) { | ||
col = {}; | ||
Repository.store[this.collectionName] = col; | ||
store[this.collectionName] = col; | ||
} | ||
@@ -128,0 +129,0 @@ |
@@ -131,12 +131,9 @@ 'use strict'; | ||
find: function(query, callback) { | ||
find: function(query, queryOptions, callback) { | ||
this.checkConnection(); | ||
callback = callback || query; | ||
query = arguments.length === 2 ? query : {}; | ||
var self = this; | ||
this.collection.find(query).toArray(function(err, vms) { | ||
this.collection.find(query, queryOptions).toArray(function(err, vms) { | ||
@@ -143,0 +140,0 @@ // Map to view models |
@@ -171,10 +171,12 @@ 'use strict'; | ||
find: function(query, callback) { | ||
find: function(query, queryOptions, callback) { | ||
this.checkConnection(); | ||
callback = callback || query; | ||
var self = this; | ||
this.client.keys(this.prefix + ':*', function(err, docs) { | ||
if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) { | ||
docs = docs.slice(queryOptions.skip, queryOptions.limit + queryOptions.skip + 1); | ||
} | ||
// docs.reverse(); | ||
@@ -181,0 +183,0 @@ async.map(docs, function(doc, callback) { |
@@ -89,12 +89,9 @@ 'use strict'; | ||
find: function(query, callback) { | ||
find: function(query, queryOptions, callback) { | ||
this.checkConnection(); | ||
callback = callback || query; | ||
query = arguments.length === 2 ? query : {}; | ||
var self = this; | ||
this.collection.find(query).toArray(function(err, vms) { | ||
this.collection.find(query, queryOptions).toArray(function(err, vms) { | ||
@@ -101,0 +98,0 @@ // Map to view models |
@@ -109,8 +109,13 @@ 'use strict'; | ||
var orgFind = repo.find; | ||
repo.find = function (query, callback) { | ||
repo.find = function (query, queryOptions, callback) { | ||
if (typeof query === 'function') { | ||
callback = query; | ||
query = {}; | ||
queryOptions = {}; | ||
} | ||
orgFind.apply(this, [query, function (err, res) { | ||
if (typeof queryOptions === 'function') { | ||
callback = queryOptions; | ||
queryOptions = {}; | ||
} | ||
orgFind.apply(this, [query, queryOptions, function (err, res) { | ||
if (err) { | ||
@@ -177,8 +182,13 @@ return callback(err); | ||
var orgFind = repo.find; | ||
repo.find = function (query, callback) { | ||
repo.find = function (query, queryOptions, callback) { | ||
if (typeof query === 'function') { | ||
callback = query; | ||
query = {}; | ||
queryOptions = {}; | ||
} | ||
orgFind.apply(this, [query, function (err, res) { | ||
if (typeof queryOptions === 'function') { | ||
callback = queryOptions; | ||
queryOptions = {}; | ||
} | ||
orgFind.apply(this, [query, queryOptions, function (err, res) { | ||
if (err) { | ||
@@ -185,0 +195,0 @@ return callback(err); |
{ | ||
"author": "adrai", | ||
"name": "viewmodel", | ||
"version": "1.0.3", | ||
"version": "1.1.0", | ||
"private": false, | ||
@@ -6,0 +6,0 @@ "main": "index.js", |
@@ -103,2 +103,17 @@ # Introduction | ||
## Find with query options | ||
// the query object ist like in mongoDb... | ||
dummyRepo.find({ color: 'green' }, { limit: 2, skip: 1 }, function(err, vms) { | ||
if(err) { | ||
console.log('ohhh :-('); | ||
return; | ||
} | ||
// vms is an array of all what is in the repository | ||
var firstItem = vms[0]; | ||
console.log('the id: ' + firstItem.id); | ||
console.log('the saved value: ' + firstItem.get('color')); | ||
}); | ||
## Find by id... | ||
@@ -105,0 +120,0 @@ |
@@ -0,1 +1,4 @@ | ||
#### v1.1.0 | ||
- added possibility to pass query options | ||
#### v1.0.3 | ||
@@ -2,0 +5,0 @@ - parse json with json-serialize |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
50934
1359
235