New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

js-data-rethinkdb

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-data-rethinkdb - npm Package Compare versions

Comparing version 1.0.0-alpha.3 to 1.0.0-alpha.4

5

CHANGELOG.md

@@ -0,1 +1,6 @@

##### 1.0.0-alpha.4 - 23 November 2014
###### Backwards compatible bug fixes
- Fixed improper use of r.row in nested queries
##### 1.0.0-alpha.3 - 23 November 2014

@@ -2,0 +7,0 @@

2

package.json
{
"name": "js-data-rethinkdb",
"description": "RethinkDB adapter for js-data.",
"version": "1.0.0-alpha.3",
"version": "1.0.0-alpha.4",
"homepage": "http://www.js-data.io/docs/dsrethinkdbadapter",

@@ -6,0 +6,0 @@ "repository": {

@@ -8,2 +8,3 @@ var rethinkdbdash = require('rethinkdbdash');

var isObject = require('mout/lang/isObject');
var isEmpty = require('mout/lang/isEmpty');
var isString = require('mout/lang/isString');

@@ -57,49 +58,50 @@ var upperCase = require('mout/string/upperCase');

var query = r.db(options.db || this.defaults.db).table(resourceConfig.table || underscore(resourceConfig.name));
var subQuery;
forOwn(params.where, function (criteria, field) {
if (!isObject(criteria)) {
params.where[field] = {
'==': criteria
};
}
forOwn(criteria, function (v, op) {
if (op === '==' || op === '===') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).eq(v)) : r.row(field).default(null).eq(v);
} else if (op === '!=' || op === '!==') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).ne(v)) : r.row(field).default(null).ne(v);
} else if (op === '>') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).gt(v)) : r.row(field).default(null).gt(v);
} else if (op === '>=') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).ge(v)) : r.row(field).default(null).ge(v);
} else if (op === '<') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).lt(v)) : r.row(field).default(null).lt(v);
} else if (op === '<=') {
subQuery = subQuery ? subQuery.and(r.row(field).default(null).le(v)) : r.row(field).default(null).le(v);
} else if (op === 'in') {
subQuery = subQuery ? subQuery.and(r.expr(v).default(r.expr([])).contains(r.row(field).default(null))) : r.expr(v).default(r.expr([])).contains(r.row(field).default(null));
} else if (op === 'notIn') {
subQuery = subQuery ? subQuery.and(r.expr(v).default(r.expr([])).contains(r.row(field).default(null)).not()) : r.expr(v).default(r.expr([])).contains(r.row(field).default(null)).not();
} else if (op === '|==' || op === '|===') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).eq(v)) : r.row(field).default(null).eq(v);
} else if (op === '|!=' || op === '|!==') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).ne(v)) : r.row(field).default(null).ne(v);
} else if (op === '|>') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).gt(v)) : r.row(field).default(null).gt(v);
} else if (op === '|>=') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).ge(v)) : r.row(field).default(null).ge(v);
} else if (op === '|<') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).lt(v)) : r.row(field).default(null).lt(v);
} else if (op === '|<=') {
subQuery = subQuery ? subQuery.or(r.row(field).default(null).le(v)) : r.row(field).default(null).le(v);
} else if (op === '|in') {
subQuery = subQuery ? subQuery.or(r.expr(v).default(r.expr([])).contains(r.row(field).default(null))) : r.expr(v).default(r.expr([])).contains(r.row(field).default(null));
} else if (op === '|notIn') {
subQuery = subQuery ? subQuery.or(r.expr(v).default(r.expr([])).contains(r.row(field).default(null)).not()) : r.expr(v).default(r.expr([])).contains(r.row(field).default(null)).not();
}
if (!isEmpty(params.where)) {
query = query.filter(function (row) {
var subQuery;
forOwn(params.where, function (criteria, field) {
if (!isObject(criteria)) {
params.where[field] = {
'==': criteria
};
}
forOwn(criteria, function (v, op) {
if (op === '==' || op === '===') {
subQuery = subQuery ? subQuery.and(row(field).default(null).eq(v)) : row(field).default(null).eq(v);
} else if (op === '!=' || op === '!==') {
subQuery = subQuery ? subQuery.and(row(field).default(null).ne(v)) : row(field).default(null).ne(v);
} else if (op === '>') {
subQuery = subQuery ? subQuery.and(row(field).default(null).gt(v)) : row(field).default(null).gt(v);
} else if (op === '>=') {
subQuery = subQuery ? subQuery.and(row(field).default(null).ge(v)) : row(field).default(null).ge(v);
} else if (op === '<') {
subQuery = subQuery ? subQuery.and(row(field).default(null).lt(v)) : row(field).default(null).lt(v);
} else if (op === '<=') {
subQuery = subQuery ? subQuery.and(row(field).default(null).le(v)) : row(field).default(null).le(v);
} else if (op === 'in') {
subQuery = subQuery ? subQuery.and(r.expr(v).default(r.expr([])).contains(row(field).default(null))) : r.expr(v).default(r.expr([])).contains(row(field).default(null));
} else if (op === 'notIn') {
subQuery = subQuery ? subQuery.and(r.expr(v).default(r.expr([])).contains(row(field).default(null)).not()) : r.expr(v).default(r.expr([])).contains(row(field).default(null)).not();
} else if (op === '|==' || op === '|===') {
subQuery = subQuery ? subQuery.or(row(field).default(null).eq(v)) : row(field).default(null).eq(v);
} else if (op === '|!=' || op === '|!==') {
subQuery = subQuery ? subQuery.or(row(field).default(null).ne(v)) : row(field).default(null).ne(v);
} else if (op === '|>') {
subQuery = subQuery ? subQuery.or(row(field).default(null).gt(v)) : row(field).default(null).gt(v);
} else if (op === '|>=') {
subQuery = subQuery ? subQuery.or(row(field).default(null).ge(v)) : row(field).default(null).ge(v);
} else if (op === '|<') {
subQuery = subQuery ? subQuery.or(row(field).default(null).lt(v)) : row(field).default(null).lt(v);
} else if (op === '|<=') {
subQuery = subQuery ? subQuery.or(row(field).default(null).le(v)) : row(field).default(null).le(v);
} else if (op === '|in') {
subQuery = subQuery ? subQuery.or(r.expr(v).default(r.expr([])).contains(row(field).default(null))) : r.expr(v).default(r.expr([])).contains(row(field).default(null));
} else if (op === '|notIn') {
subQuery = subQuery ? subQuery.or(r.expr(v).default(r.expr([])).contains(row(field).default(null)).not()) : r.expr(v).default(r.expr([])).contains(row(field).default(null)).not();
}
});
});
return subQuery;
});
});
if (subQuery) {
query = query.filter(subQuery);
}

@@ -106,0 +108,0 @@

@@ -24,2 +24,28 @@ describe('DSRethinkDBAdapter#findAll', function () {

});
it('should filter users using the "in" operator', function (done) {
var id;
adapter.findAll(User, {
where: {
age: {
'in': [30]
}
}
}).then(function (users) {
assert.equal(users.length, 0);
return adapter.create(User, { name: 'John' });
}).then(function (user) {
id = user.id;
return adapter.findAll(User, {
name: 'John'
});
}).then(function (users) {
assert.equal(users.length, 1);
assert.deepEqual(users[0], { id: id, name: 'John' });
return adapter.destroy(User, id);
}).then(function (destroyedUser) {
assert.isFalse(!!destroyedUser);
done();
}).catch(done);
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc