-
Notifications
You must be signed in to change notification settings - Fork 573
/
Copy pathusers.js
108 lines (101 loc) · 2.97 KB
/
users.js
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
var express = require('express');
var router = express.Router();
var Promise = require('bluebird');
var _ = require('lodash');
var models = require('../models');
var middleware = require('../core/middleware');
var AccountManager = require('../core/services/account-manager');
var AppError = require('../core/app-error')
router.get('/', middleware.checkToken, (req, res) => {
res.send({ title: 'CodePushServer' });
});
router.post('/', (req, res, next) => {
var email = _.trim(_.get(req, 'body.email'));
var token = _.trim(_.get(req, 'body.token'));
var password = _.trim(_.get(req, 'body.password'));
var accountManager = new AccountManager();
return accountManager.checkRegisterCode(email, token)
.then((u) => {
if (_.isString(password) && password.length < 6) {
throw new AppError.AppError('请您输入6~20位长度的密码');
}
return accountManager.register(email, password);
})
.then(() => {
res.send({status: "OK"});
})
.catch((e) => {
if (e instanceof AppError.AppError) {
res.send({status: "ERROR", message: e.message});
} else {
next(e);
}
});
});
router.get('/exists', (req, res, next) => {
var email = _.trim(_.get(req, 'query.email'));
models.Users.findOne({where: {email: email}})
.then((u) => {
if (!email) {
throw new AppError.AppError(`请您输入邮箱地址`);
}
res.send({status: "OK", exists: u ? true : false});
})
.catch((e) => {
if (e instanceof AppError.AppError) {
res.send({status: "ERROR", message: e.message});
} else {
next(e);
}
});
});
router.post('/registerCode', (req, res, next) => {
var email = _.get(req, 'body.email');
var accountManager = new AccountManager();
return accountManager.sendRegisterCode(email)
.then(() => {
res.send({status: "OK"});
})
.catch((e) => {
if (e instanceof AppError.AppError) {
res.send({status: "ERROR", message: e.message});
} else {
next(e);
}
});
});
router.get('/registerCode/exists', (req, res, next) => {
var email = _.trim(_.get(req, 'query.email'));
var token = _.trim(_.get(req, 'query.token'));
var accountManager = new AccountManager();
return accountManager.checkRegisterCode(email, token)
.then(() => {
res.send({status: "OK"});
})
.catch((e) => {
if (e instanceof AppError.AppError) {
res.send({status: "ERROR", message: e.message});
} else {
next(e);
}
});
});
//修改密码
router.patch('/password', middleware.checkToken, (req, res, next) => {
var oldPassword = _.trim(_.get(req, 'body.oldPassword'));
var newPassword = _.trim(_.get(req, 'body.newPassword'));
var uid = req.users.id;
var accountManager = new AccountManager();
return accountManager.changePassword(uid, oldPassword, newPassword)
.then(() => {
res.send({status: "OK"});
})
.catch((e) => {
if (e instanceof AppError.AppError) {
res.send({status: "ERROR", message: e.message});
} else {
next(e);
}
});
});
module.exports = router;