From daf3da70e0fa69505d5ebc7d600cdace80533710 Mon Sep 17 00:00:00 2001 From: Emmanuel Quentin Date: Tue, 26 Aug 2014 13:35:15 +0200 Subject: [PATCH] Add X-Count header when slicing collection --- src/routes.js | 11 +++++++---- test/server.js | 8 ++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/routes.js b/src/routes.js index 10960aa..24a57af 100644 --- a/src/routes.js +++ b/src/routes.js @@ -36,6 +36,9 @@ routes.list = function(req, res, next) { } if (_start) { + res.setHeader('X-Count', resource.length) + res.setHeader('Access-Control-Expose-Headers', 'X-Count') + resource = resource.slice(_start, _end) } @@ -56,7 +59,7 @@ routes.create = function(req, res, next) { for (var key in req.body) { req.body[key] = utils.toNative(req.body[key]) } - + var resource = low(req.params.resource) .insert(req.body) .value() @@ -74,14 +77,14 @@ routes.update = function(req, res, next) { var resource = low(req.params.resource) .update(+req.params.id, req.body) .value() - + res.jsonp(resource) } // DELETE /:resource/:id routes.destroy = function(req, res, next) { low(req.params.resource).remove(+req.params.id) - + // Remove dependents documents var removable = utils.getRemovable(low.db) @@ -92,4 +95,4 @@ routes.destroy = function(req, res, next) { res.send(204) } -module.exports = routes \ No newline at end of file +module.exports = routes diff --git a/test/server.js b/test/server.js index 47d18d2..8b36d18 100644 --- a/test/server.js +++ b/test/server.js @@ -61,7 +61,11 @@ describe('Server', function() { .get('/comments?_start=1&_end=2') .expect('Content-Type', /json/) .expect(low.db.comments.slice(1, 2)) - .expect(200, done) + .expect(200) + .end(function(err, res){ + assert.equal(res.headers['x-count'], 5) + done() + }) }) }) @@ -171,4 +175,4 @@ describe('Server', function() { }); }) -}) \ No newline at end of file +})