summaryrefslogtreecommitdiff
path: root/server/lib/api.js
blob: 85c5b8577c1c9870c706c2327d3cd2ad29db4e60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* jshint node: true */

var passport = require('passport'),
	Entities = require('html-entities').XmlEntities,
	entities = new Entities(),
	crypto = require('crypto'),
	_ = require('lodash'),
	util = require('./util'),
	config = require('../../config.json'),
	User = require('./schemas/User');


var api = {

	profile: {
		show: function(req, res){
			User.findOne({ _id: req.user._id }, function(err, user){
				res.json(err || user)
			})
		},
		
		update: function(req, res){
			var data = util.cleanQuery(req.body)
			if (data.new_password.length) {
				if (req.user.checkPassword(data.old_password)) {
					res.json({ error: { errors: { username: { message: "Old password is incorrect" } } } })
				}
				
				var shasum = crypto.createHash('sha1')
				shasum.update(data.new_password)
				password = shasum.digest('hex');
				
				req.user.password = password
			}
			delete data.old_password
			delete data.new_password
			delete data.isAdmin
			_.extend( req.user, data )
			req.user.save(function(err, msg) {
				err ? res.json({ status: "FAIL", error: err })
					: res.json({ status: "OK", payload: req.user })
			})
		}
	}

}


module.exports = api