From a3f6c22e5611687f9fbb694fdf2ea62819dd7dec Mon Sep 17 00:00:00 2001 From: Lucas Silva Date: Tue, 16 May 2017 13:27:57 -0300 Subject: [PATCH 1/2] Fix for hero search route --- app/routes/hero_routes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routes/hero_routes.js b/app/routes/hero_routes.js index b395e3c..efe6eaf 100644 --- a/app/routes/hero_routes.js +++ b/app/routes/hero_routes.js @@ -58,7 +58,7 @@ module.exports = function (app) { }); }); - apiRoutes.get('/search/:params', passport.authenticate('jwt', { session: false }), function (req, res) { + apiRoutes.get('/search', passport.authenticate('jwt', { session: false }), function (req, res) { let name = req.query.name; Hero.find({ name: {$regex: name, $options: 'i'}}, function (err, heroes) { if (err) { From 5b88b4f54f7d871d802edaaa66fb86d8f292a1eb Mon Sep 17 00:00:00 2001 From: Rafael Date: Tue, 16 May 2017 14:06:07 -0300 Subject: [PATCH 2/2] add paging --- app/routes/hero_routes.js | 11 ++++++++--- package.json | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/routes/hero_routes.js b/app/routes/hero_routes.js index b395e3c..e2cf893 100644 --- a/app/routes/hero_routes.js +++ b/app/routes/hero_routes.js @@ -2,6 +2,7 @@ var passport = require('passport'); var express = require('express'); var config = require('../../config/main'); var jwt = require('jsonwebtoken'); +var _ = require('underscore') var Hero = require('../models/hero'); var User = require('../models/user'); @@ -9,13 +10,17 @@ module.exports = function (app) { var apiRoutes = express.Router(); apiRoutes.get('/', passport.authenticate('jwt', { session: false }), function (req, res) { - Hero.find({}, { _id: 0, __v: 0 }, function (err, heroes) { + var page_param = parseInt(req.query.page); + var page = _.isNaN(page_param) | page_param < 0 ? 0 : page_param; + const HEROES_PER_PAGE = 20; + + Hero.find({}, { _id: 0, __v: 0 }, function (err, heroes) { if (err) { res.json(err); } else { - res.json(heroes); + res.json(heroes); } - }).skip(parseInt(req.query['offset'] || 0)).limit(parseInt(req.query['limit'] || 20)); + }).skip(parseInt(req.query['offset'] || page * HEROES_PER_PAGE)).limit(parseInt(req.query['limit'] || HEROES_PER_PAGE)); }); diff --git a/package.json b/package.json index de2f5fc..bb05d96 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "passport": "^0.3.2", "passport-jwt": "^2.0.0", "socket.io": "^1.7.3", - "socketio-jwt-auth": "0.0.5" + "socketio-jwt-auth": "0.0.5", + "underscore": "^1.8.3" }, "devDependencies": { "nodemon": "^1.11.0"