commonroutesServer/controllers/userController.js
controllers/userController.jsRaw
1//File: controllers/userController.js
2var mongoose = require('mongoose');
3var userModel = mongoose.model('userModel');
4
5/* */
6var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
7var express = require("express");
8var app = express();
9var config = require('../config'); // get our config file
10app.set('superSecret', config.secret); // secret variable
11/* */
12
13//GET - Return all Users in the DB
14exports.findAllUsers = function(req, res) {
15 userModel.find(function(err, users) {
16 if(err) res.send(500, err.message);
17
18 //password deletion
19 for(var i=0; i<users.length; i++)
20 {
21 users[i].password="";
22 console.log(users[i].password);
23 }
24
25 console.log('GET /users');
26 res.status(200).jsonp(users);
27 });
28};
29
30//GET - Return a User with specified ID
31exports.findById = function(req, res) {
32 userModel.findById(req.params.id, function(err, user) {
33 if(err) return res.send(500, err.message);
34
35 console.log('GET /users/' + req.params.id);
36 //password deletion
37 if(user!=null){
38 user.password="";
39 }
40 res.status(200).jsonp(user);
41 });
42};
43
44exports.findUserByUsername = function(req, res) {
45 userModel.find({
46 username: req.params.username
47 }, function(err, user) {
48
49 if (err) throw err;
50
51 if (!user) {
52 res.json({ success: false, message: 'no user found' });
53 } else if (user) {
54 // return the information including token as JSON
55 //res.jsonp(user);
56 user.password="";
57 console.log(user);
58 res.status(200).jsonp(user[0]);
59
60
61 }
62
63 });
64};
65
66//POST - Insert a new User in the DB
67exports.addUser = function(req, res) {
68 console.log('POST new user, name: ' + req.body.username);
69 //console.log(req.body);
70
71 var user = new userModel({
72 username: req.body.username,
73 password: req.body.password,
74 description: req.body.description,
75 avatar: req.body.avatar,
76 mail: req.body.mail,
77 phone: req.body.phone,
78 telegram: req.body.telegram
79 });
80
81 user.save(function(err, user) {
82 if(err) return res.send(500, err.message);
83 res.status(200).jsonp(user);
84 });
85};
86
87//PUT - Update a user already exists
88exports.updateUser = function(req, res) {
89 userModel.findById(req.params.id, function(err, user) {
90 user.username = req.body.username;
91 user.password = req.body.password;
92 user.description = req.body.description;
93 user.avatar = req.body.avatar;
94 user.mail = req.body.mail;
95 user.phone = req.body.phone;
96 user.telegram = req.body.telegram;
97
98 user.save(function(err) {
99 if(err) return res.send(500, err.message);
100 user.password="";
101 res.status(200).jsonp(user);
102 });
103 });
104};
105
106//DELETE - Delete a user with specified ID
107exports.deleteUser = function(req, res) {
108 userModel.findById(req.params.id, function(err, user) {
109 user.remove(function(err) {
110 if(err) return res.send(500, err.message);
111 res.status(200).jsonp(req.params.id);
112 console.log('DELETE /users/' + req.params.id);
113 })
114 });
115};
116
117
118//POST - auth user
119exports.login = function(req, res) {
120 // find the user
121 userModel.findOne({
122 username: req.body.username
123 }, function(err, user) {
124
125 if (err) throw err;
126
127 if (!user) {
128 res.json({ success: false, message: 'Authentication failed. User not found.' });
129 } else if (user) {
130
131 // check if password matches
132 if (user.password != req.body.password) {
133 res.json({ success: false, message: 'Authentication failed. Wrong password.' });
134 } else {
135
136 // if user is found and password is right
137 // create a token
138 var token = jwt.sign(user, app.get('superSecret'), {
139 //expiresInMinutes: 1440 // expires in 24 hours
140 //expiresIn: '60m'
141 });
142console.log(user);
143 // return the information including token as JSON
144 res.json({
145 success: true,
146 message: 'Enjoy your token!',
147 token: token,
148 avatar: user.avatar,
149 userid: user._id
150 });
151 }
152
153 }
154
155 });
156};