Skip to content

Commit

Permalink
added test for ppromises filter
Browse files Browse the repository at this point in the history
  • Loading branch information
dreampulse committed Jul 23, 2014
1 parent 2042917 commit c7dd08b
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 52 deletions.
58 changes: 42 additions & 16 deletions browser-dist/modelizer-angular.js
Expand Up @@ -1034,17 +1034,30 @@ Model.prototype.readFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getReadFilter = function(req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.readFilters.length; i++) { // alle filter
var filter = this.readFilters[i](req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.readFilters[i](req))
.then(function(filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}


Expand All @@ -1056,17 +1069,30 @@ Model.prototype.writeFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getWriteFilter = function(obj, req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.writeFilters.length; i++) { // alle filter
var filter = this.writeFilters[i](obj, req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.writeFilters[i](req))
.then(function (filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}

// Using the model (static functions)
Expand Down
58 changes: 42 additions & 16 deletions browser-dist/modelizer.js
Expand Up @@ -834,17 +834,30 @@ Model.prototype.readFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getReadFilter = function(req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.readFilters.length; i++) { // alle filter
var filter = this.readFilters[i](req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.readFilters[i](req))
.then(function(filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}


Expand All @@ -856,17 +869,30 @@ Model.prototype.writeFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getWriteFilter = function(obj, req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.writeFilters.length; i++) { // alle filter
var filter = this.writeFilters[i](obj, req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.writeFilters[i](req))
.then(function (filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}

// Using the model (static functions)
Expand Down
58 changes: 42 additions & 16 deletions lib/model.js
Expand Up @@ -802,17 +802,30 @@ Model.prototype.readFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getReadFilter = function(req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.readFilters.length; i++) { // alle filter
var filter = this.readFilters[i](req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.readFilters[i](req))
.then(function(filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}


Expand All @@ -824,17 +837,30 @@ Model.prototype.writeFilter = function(fn) {
// create the filter hash (mongo search string)
Model.prototype._getWriteFilter = function(obj, req) {
var res = {};
var bool_res = null;

var promises = [];

for (var i=0; i<this.writeFilters.length; i++) { // alle filter
var filter = this.writeFilters[i](obj, req);
if (filter === false) return false; // deny all filter
if (filter === true) continue; // ignore filter
promises.push(Q(this.writeFilters[i](req))
.then(function (filter) {
if (filter === false) bool_res = false;
if (filter === true) bool_res = true;

// copy content
for (var j in filter) {
res[j] = filter[j];
}

// copy content
for (var j in filter) {
res[j] = filter[j];
}
}))
}
return res;

return Q.all(promises)
.then(function() {
if (bool_res === null)
return res
else return bool_res;
})
}

// Using the model (static functions)
Expand Down
6 changes: 3 additions & 3 deletions lib/modelizer.js
Expand Up @@ -231,7 +231,7 @@ Model.prototype.filtered_getQ = function (id_str, req) {
Model.prototype.filtered_findQ = function (search, req) {
var self = this;

return Q(this._getReadFilter(req))
return this._getReadFilter(req)
.then(function(filter) {
if (filter === false) { // deny all
var deniedError = new Error("Access denied!");
Expand All @@ -246,7 +246,7 @@ Model.prototype.filtered_findQ = function (search, req) {
}

// weiterrichen an die eigentliche Suche
//console.log(search);
console.log(search);
return self.findQ(search);

});
Expand All @@ -263,7 +263,7 @@ Model.prototype.filtered_saveQ = function (obj, req) {

var self = this;

return Q(this._getWriteFilter(obj, req))
return this._getWriteFilter(obj, req)
.then(function(filter) {
if (filter === false) { // deny all
var deniedError = new Error("Access denied!");
Expand Down
3 changes: 2 additions & 1 deletion test/orm.spec.js
Expand Up @@ -471,7 +471,8 @@ describe('Modelizer', function() {

it('filter for attr1 should be A', function(done) {
MyModel5.readFilter(function () {
return {attr1 : "A"};
//return {attr1 : "A"};
return Q({attr1 : "A"});
});

MyModel5.filtered_allQ()
Expand Down

0 comments on commit c7dd08b

Please sign in to comment.