Skip to content

Commit

Permalink
fixed search for heroes
Browse files Browse the repository at this point in the history
  • Loading branch information
ygorgs committed May 10, 2017
1 parent 3ed80da commit f9e06c4
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 34 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"vsicons.presets.angular": false
}
79 changes: 45 additions & 34 deletions app/routes/hero_routes.js
Original file line number Diff line number Diff line change
@@ -1,72 +1,83 @@
var passport = require('passport');
var express = require('express');
var config = require('../../config/main');
var jwt = require('jsonwebtoken');
var passport = require('passport');
var express = require('express');
var config = require('../../config/main');
var jwt = require('jsonwebtoken');
var Hero = require('../models/hero');
var User = require('../models/user');

module.exports = function(app) {
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) {
if(err) {
res.json(err);
} else {
res.json(heroes);
}
apiRoutes.get('/', passport.authenticate('jwt', { session: false }), function (req, res) {
Hero.find({}, { _id: 0, __v: 0 }, function (err, heroes) {
if (err) {
res.json(err);
} else {
res.json(heroes);
}
}).skip(parseInt(req.query['offset'] || 0)).limit(parseInt(req.query['limit'] || 20));
});



apiRoutes.post('/favorite/:id', passport.authenticate('jwt', { session: false }), function(req, res) {
User.findOne({email: req.user.email}, function(err, doc) {
apiRoutes.post('/favorite/:id', passport.authenticate('jwt', { session: false }), function (req, res) {
User.findOne({ email: req.user.email }, function (err, doc) {
if (err) throw err;

var id = req.params.id;
if( doc.favorites.filter(x => x == id).length == 0 ) {
var id = req.params.id;
if (doc.favorites.filter(x => x == id).length == 0) {
doc.favorites.push(id);
}

doc.save();
return res.status(200).json({ success: true, message: 'Successfully marked hero as favorite'});
return res.status(200).json({ success: true, message: 'Successfully marked hero as favorite' });
});
});

apiRoutes.delete('/favorite/:id', passport.authenticate('jwt', { session: false }), function(req, res) {
User.findOne({email: req.user.email}, function(err, doc) {
apiRoutes.delete('/favorite/:id', passport.authenticate('jwt', { session: false }), function (req, res) {
User.findOne({ email: req.user.email }, function (err, doc) {
if (err) throw err;

var index = doc.favorites.indexOf(req.params.id);

if(index >= 0) {
if (index >= 0) {
doc.favorites.splice(index, 1);
}

doc.save();
return res.status(200).json({ success: true, message: 'Successfully unmarked hero as favorite'});
return res.status(200).json({ success: true, message: 'Successfully unmarked hero as favorite' });
});
});


apiRoutes.get('/favorite', passport.authenticate('jwt', { session: false }), function(req, res) {
User.findOne({email: req.user.email}, function(err, doc) {
apiRoutes.get('/favorite', passport.authenticate('jwt', { session: false }), function (req, res) {
User.findOne({ email: req.user.email }, function (err, doc) {
if (err) throw err;
return res.status(200).json({ success: true, message: 'Successfully unmarked hero as favorite', favorites: doc.favorites});

return res.status(200).json({ success: true, message: 'Successfully unmarked hero as favorite', favorites: doc.favorites });
});
});

apiRoutes.get('/:id', passport.authenticate('jwt', { session: false}), function(req, res) {
apiRoutes.get('/search/:params', 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) {
throw err;
} else {
return res.status(200).json({ success: true, message: 'Successfully', result: heroes });
}
})
});

apiRoutes.get('/:id', passport.authenticate('jwt', { session: false }), function (req, res) {
let id = req.params.id;
Hero.findOne({id:id}, function(err, hero) {
if(err) {
throw err;
} else {
console.log(hero);
return res.status(200).json({ success: true, message: 'Successfully', hero: hero});
}
Hero.findOne({ id: id }, function (err, hero) {
if (err) {
throw err;
} else {
console.log(hero);
return res.status(200).json({ success: true, message: 'Successfully', hero: hero });
}
});
});

Expand Down

0 comments on commit f9e06c4

Please sign in to comment.