Skip to content

Commit

Permalink
Adds limit = 0 as a valid parameter for queries (#1493)
Browse files Browse the repository at this point in the history
* Remove results if limit = 0;

* Adds tests for limit=0 and count=1.

* Improves readability.
  • Loading branch information
seijiakiyama authored and drew-gross committed Apr 15, 2016
1 parent f076078 commit a727e1c
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
29 changes: 29 additions & 0 deletions spec/RestQuery.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
});

});
4 changes: 4 additions & 0 deletions src/RestQuery.js
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,10 @@ RestQuery.prototype.replaceDontSelect = function() {
// Returns a promise for whether it was successful.
// Populates this.response with an object that only has 'results'.
RestQuery.prototype.runFind = function() {
if (this.findOptions.limit === 0) {
this.response = {results: []};
return Promise.resolve();
}
return this.config.database.find(
this.className, this.restWhere, this.findOptions).then((results) => {
if (this.className === '_User') {
Expand Down
2 changes: 1 addition & 1 deletion src/Routers/ClassesRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export class ClassesRouter extends PromiseRouter {
if (body.skip) {
options.skip = Number(body.skip);
}
if (body.limit) {
if (body.limit || body.limit === 0) {
options.limit = Number(body.limit);
} else {
options.limit = Number(100);
Expand Down

0 comments on commit a727e1c

Please sign in to comment.