Adds limit = 0 as a valid parameter for queries (#1493)
* Remove results if limit = 0; * Adds tests for limit=0 and count=1. * Improves readability.
This commit is contained in:
@@ -191,4 +191,33 @@ describe('rest query', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('query with limit = 0', (done) => {
|
||||||
|
rest.create(config, nobody, 'TestObject', {foo: 'baz'}
|
||||||
|
).then(() => {
|
||||||
|
return rest.create(config, nobody,
|
||||||
|
'TestObject', {foo: 'qux'});
|
||||||
|
}).then(() => {
|
||||||
|
return rest.find(config, nobody,
|
||||||
|
'TestObject', {}, {limit: 0});
|
||||||
|
}).then((response) => {
|
||||||
|
expect(response.results.length).toEqual(0);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('query with limit = 0 and count = 1', (done) => {
|
||||||
|
rest.create(config, nobody, 'TestObject', {foo: 'baz'}
|
||||||
|
).then(() => {
|
||||||
|
return rest.create(config, nobody,
|
||||||
|
'TestObject', {foo: 'qux'});
|
||||||
|
}).then(() => {
|
||||||
|
return rest.find(config, nobody,
|
||||||
|
'TestObject', {}, {limit: 0, count: 1});
|
||||||
|
}).then((response) => {
|
||||||
|
expect(response.results.length).toEqual(0);
|
||||||
|
expect(response.count).toEqual(2);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -325,6 +325,10 @@ RestQuery.prototype.replaceDontSelect = function() {
|
|||||||
// Returns a promise for whether it was successful.
|
// Returns a promise for whether it was successful.
|
||||||
// Populates this.response with an object that only has 'results'.
|
// Populates this.response with an object that only has 'results'.
|
||||||
RestQuery.prototype.runFind = function() {
|
RestQuery.prototype.runFind = function() {
|
||||||
|
if (this.findOptions.limit === 0) {
|
||||||
|
this.response = {results: []};
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
return this.config.database.find(
|
return this.config.database.find(
|
||||||
this.className, this.restWhere, this.findOptions).then((results) => {
|
this.className, this.restWhere, this.findOptions).then((results) => {
|
||||||
if (this.className === '_User') {
|
if (this.className === '_User') {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export class ClassesRouter extends PromiseRouter {
|
|||||||
if (body.skip) {
|
if (body.skip) {
|
||||||
options.skip = Number(body.skip);
|
options.skip = Number(body.skip);
|
||||||
}
|
}
|
||||||
if (body.limit) {
|
if (body.limit || body.limit === 0) {
|
||||||
options.limit = Number(body.limit);
|
options.limit = Number(body.limit);
|
||||||
} else {
|
} else {
|
||||||
options.limit = Number(100);
|
options.limit = Number(100);
|
||||||
|
|||||||
Reference in New Issue
Block a user