mirror of
https://github.com/zhigang1992/deployd.git
synced 2026-05-29 00:51:30 +08:00
62 lines
1.2 KiB
JavaScript
62 lines
1.2 KiB
JavaScript
var app = require('../../app')
|
|
, User = require('./user')
|
|
, Users = require('./users')
|
|
;
|
|
|
|
function user(action, params, req, res) {
|
|
User
|
|
.spawn()
|
|
.for(req)
|
|
.set(params)
|
|
.notify(res)
|
|
[action]()
|
|
;
|
|
}
|
|
|
|
app.post('/user', function(req, res) {
|
|
user('save', req.body, req, res);
|
|
});
|
|
|
|
app.post('/user/login', function(req, res) {
|
|
user('login', req.body, req, {
|
|
send: function(u) {
|
|
u.auth = req.sessionID;
|
|
res.send(req.session.user = u);
|
|
}
|
|
});
|
|
});
|
|
|
|
app.get('/user/logout', function(req, res) {
|
|
req.session.destroy(function() {
|
|
res.send({auth: null});
|
|
});
|
|
});
|
|
|
|
app.get('/me', function(req, res) {
|
|
user('fetch', {email: req.session.user && req.session.user.email}, req, res);
|
|
});
|
|
|
|
app.del('/me', function(req, res) {
|
|
var u = req.session.user;
|
|
if(u) user('remove', u, req, res);
|
|
});
|
|
|
|
app.get('/user/:email', function(req, res) {
|
|
user('fetch', {email: req.param('email')}, req, res);
|
|
});
|
|
|
|
app.post('/user/:email/group', function(req, res) {
|
|
user('save', {email: req.param('email'), group: req.param('group')}, req, res);
|
|
});
|
|
|
|
app.get('/users', function(req, res) {
|
|
Users
|
|
.spawn({
|
|
query: req.params
|
|
})
|
|
.for(req)
|
|
.notify(res)
|
|
.fetch()
|
|
;
|
|
});
|