jest
Advanced tools
Comparing version 0.0.87 to 0.0.88
@@ -47,26 +47,63 @@ var _ = require('underscore'), | ||
for (var filter in filters) { | ||
var splt = filter.split('__'); | ||
var query_op = null; | ||
var query_key = filter; | ||
var query_value = filters[filter]; | ||
if (splt.length > 1) { | ||
query_key = splt[0]; | ||
query_op = splt[1]; | ||
} | ||
if(self.model.schema.paths[query_key].options.type == Boolean) | ||
query_value = query_value.toLowerCase().trim() == 'true'; | ||
if(self.model.schema.paths[query_key].options.type == Number) | ||
query_value = Number(query_value.trim()); | ||
if(query_op) | ||
if(filter == 'or') | ||
{ | ||
query.where(query_key)[query_op](query_value); | ||
count_query.where(query_key)[query_op](query_value); | ||
var filter_value = _.map(filters[filter],function(or_filters) | ||
{ | ||
var or_filter_value = {}; | ||
for (var filter in or_filters) { | ||
var splt = filter.split('__'); | ||
var query_op = null; | ||
var query_key = filter; | ||
var query_value = or_filters[filter]; | ||
if (splt.length > 1) { | ||
query_key = splt[0]; | ||
query_op = splt[1]; | ||
} | ||
if(self.model.schema.paths[query_key]) | ||
{ | ||
if(self.model.schema.paths[query_key].options.type == Boolean) | ||
query_value = query_value.toLowerCase().trim() == 'true'; | ||
if(self.model.schema.paths[query_key].options.type == Number) | ||
query_value = Number(query_value.trim()); | ||
} | ||
var current_or_filter_value = or_filter_value[query_key] || {}; | ||
if(query_op) | ||
current_or_filter_value['$' + query_op] = query_value; | ||
else | ||
current_or_filter_value = query_value; | ||
or_filter_value[query_key] = current_or_filter_value; | ||
} | ||
return or_filter_value; | ||
}); | ||
console.log(filter_value); | ||
query.or(filter_value); | ||
} | ||
else | ||
{ | ||
query.where(query_key, query_value); | ||
count_query.where(query_key, query_value); | ||
var splt = filter.split('__'); | ||
var query_op = null; | ||
var query_key = filter; | ||
var query_value = filters[filter]; | ||
if (splt.length > 1) { | ||
query_key = splt[0]; | ||
query_op = splt[1]; | ||
} | ||
if(self.model.schema.paths[query_key]) | ||
{ | ||
if(self.model.schema.paths[query_key].options.type == Boolean) | ||
query_value = query_value.toLowerCase().trim() == 'true'; | ||
if(self.model.schema.paths[query_key].options.type == Number) | ||
query_value = Number(query_value.trim()); | ||
} | ||
if(query_op) | ||
{ | ||
query.where(query_key)[query_op](query_value); | ||
count_query.where(query_key)[query_op](query_value); | ||
} | ||
else | ||
{ | ||
query.where(query_key, query_value); | ||
count_query.where(query_key, query_value); | ||
} | ||
} | ||
console.log(typeof(query_value)); | ||
console.log(query_value); | ||
} | ||
@@ -73,0 +110,0 @@ |
{ | ||
"name":"jest", | ||
"description":"JavaScriptational State Transfer. JS restful API layer with Mongoose based resources. Inspired by python Tastypie", | ||
"version":"0.0.87", | ||
"version":"0.0.88", | ||
"author":"Ishai Jaffe <ishai@empeeric.com>", | ||
@@ -6,0 +6,0 @@ "contributors": [ |
@@ -355,3 +355,3 @@ var _ = require('underscore'), | ||
*/ | ||
dehydrate:function (object, tree) { | ||
dehydrate:function (object, tree,parent_object) { | ||
if(!object) | ||
@@ -363,3 +363,3 @@ return object; | ||
for (var i = 0; i < object.length; i++) { | ||
objects.push(this.dehydrate(object[i], tree)); | ||
objects.push(this.dehydrate(object[i], tree,parent_object)); | ||
} | ||
@@ -369,3 +369,3 @@ return objects; | ||
if(typeof(object) == 'function') | ||
return object(); | ||
return object.call(parent_object); | ||
// if basic type return as is | ||
@@ -390,5 +390,5 @@ if (typeof(object) != 'object') | ||
if (typeof(object.get) == 'function') | ||
new_object[field] = this.dehydrate(object.get(field) || object[field], tree[field]); | ||
new_object[field] = this.dehydrate(object.get(field) || object[field], tree[field],object); | ||
else | ||
new_object[field] = this.dehydrate(object[field], tree[field]); | ||
new_object[field] = this.dehydrate(object[field], tree[field],object); | ||
} | ||
@@ -451,3 +451,3 @@ return new_object; | ||
if (!is_auth) { | ||
self.unauthorized(res); | ||
self.unauthorized(res,'not authenticated'); | ||
return; | ||
@@ -555,4 +555,2 @@ } | ||
} | ||
else | ||
continue; | ||
// support 'in' query | ||
@@ -570,3 +568,5 @@ if (operand == 'in') | ||
if (or_filter[i] in filters) { | ||
filters['or'].push(filters[or_filter[i]]); | ||
var qry = {}; | ||
qry[or_filter[i]] = filters[or_filter[i]]; | ||
filters['or'].push(qry); | ||
delete filters[or_filter[i]]; | ||
@@ -580,4 +580,6 @@ } | ||
if (nor_filter[i] in filters) { | ||
filters['or'].push(filters[nor_filter[i]]); | ||
delete filters[or_filter[i]]; | ||
var qry = {}; | ||
qry[nor_filter[i]] = filters[nor_filter[i]]; | ||
filters['nor'].push(qry); | ||
delete filters[nor_filter[i]]; | ||
} | ||
@@ -584,0 +586,0 @@ } |
4447970
34922