tokens fully implemented, get all thoughts from user by user id implemented

This commit is contained in:
nau
2016-07-16 22:00:29 +02:00
parent 64882fc513
commit 9337b0a75c
4 changed files with 69 additions and 7 deletions

View File

@@ -22,6 +22,26 @@ exports.findById = function(req, res) {
});
};
exports.findAllThoughtsFromUsername = function(req, res) {
thoughtModel.find({
authorname: req.params.userid
}, function(err, thoughts) {
if (err) throw err;
if (!thoughts) {
res.json({ success: false, message: 'no thoughts for user' });
} else if (thoughts) {
console.log(thoughts);
// return the information including token as JSON
res.jsonp(thoughts);
}
});
};
//POST - Insert a new TVShow in the DB
exports.addThought = function(req, res) {
console.log('POST new thought, content: ' + req.body.content);

View File

@@ -30,6 +30,7 @@ exports.findById = function(req, res) {
});
};
//POST - Insert a new TVShow in the DB
exports.addUser = function(req, res) {
console.log('POST new user, name: ' + req.body.username);

View File

@@ -5,6 +5,8 @@ var mongoose = require('mongoose'),
var thoughtSchema = new Schema({
time: { type: String },
content: { type: String },
authorname: { type: String }
authorname: { type: String },
user_id: { type: String },
fav: { type: String } //array amb els users que posen fav
})
module.exports = mongoose.model('thoughtModel', thoughtSchema);

View File

@@ -40,31 +40,70 @@ router.get('/', function(req, res) {
app.use(router);*/
app.use(express.static(__dirname + '/web'));
// API routes
// API routes ------------------------------------------------------
var apiRoutes = express.Router();
apiRoutes.route('/users')
.get(userCtrl.findAllUsers)
.post(userCtrl.addUser);
apiRoutes.route('/thoughts/user/:userid')
.get(thoughtCtrl.findAllThoughtsFromUsername);
apiRoutes.route('/auth')
.post(userCtrl.login);
apiRoutes.route('/thoughts')
.get(thoughtCtrl.findAllThoughts);
apiRoutes.route('/thoughts/:id')
.get(thoughtCtrl.findById)
// route middleware to verify a token
apiRoutes.use(function(req, res, next) {
// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, app.get('superSecret'), function(err, decoded) {
if (err) {
return res.json({ success: false, message: 'Failed to authenticate token.' });
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
} else {
// if there is no token
// return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
});
apiRoutes.route('/users/:id')
.get(userCtrl.findById)
.put(userCtrl.updateActivity)
.delete(userCtrl.deleteActivity);
apiRoutes.route('/auth')
.post(userCtrl.login);
apiRoutes.route('/thoughts')
.get(thoughtCtrl.findAllThoughts)
.post(thoughtCtrl.addThought);
apiRoutes.route('/thoughts/:id')
.get(thoughtCtrl.findById)
.put(thoughtCtrl.updateActivity)
.delete(thoughtCtrl.deleteActivity);
app.use('/api', apiRoutes);
// end of API routes -------------------------------------
// Start server
app.listen(3000, function() {