/
IdentityController.js
93 lines (82 loc) · 2.05 KB
/
IdentityController.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
/**
* User Controller
**/
var sys = require('sys'),
http = require('http'),
mongoose = require('mongoose'),
Identity = mongoose.model('Identity'),
ActivityItem = mongoose.model('ActivityItem'),
conf = require('node-config'),
ViewTemplatePath = 'identity';
exports.controller = function(req, res, next) {
Controller.call(this, req, res, next);
var self = this;
self.layout = "dashboard";
self.view = function() {
var display = {
layout: self.layout,
identity: false,
items: false
};
Identity.find({_id: req.params.id})
.findOne(function(err, identity) {
if(err) return next(err);
if (!identity) {
return res.render("404");
}
display.identity = identity;
ActivityItem.find({user: identity.id})
.sort('posted_at', -1)
.limit(20)
.populate("user")
.populate("topics")
.run(function (err, items) {
if (err || !items) {
items = [];
}
display.items = items;
display_page();
});
});
function display_page () {
switch (req.params.format) {
case 'json':
res.send(identity.toObject());
break;
default:
res.render(ViewTemplatePath + "/view", display);
}
}
}
// end /identity/view
self.byusername = function (req, res, next, me) {
var id = req.params.id;
Identity.findOne({user_name: id}, function (err, identity) {
if (err) {
return next(err);
}
if (!identity) {
return res.render("404");
}
res.redirect("/identity/view/"+identity.id);
});
}
// end /identity/byusername
self.closeness = function (req, res, next, me) {
var id = req.params.id;
Identity.findOne({_id: id})
.run(function (err, identity) {
if (!err && identity && req.body && req.body.identity) {
identity.closeness = req.body.identity.closeness;
identity.save(function (err) {
ActivityItem.update({user: id}, {analyzed_at: new Date(Date.now()-86400*1000)}, {multi: true}, function (err) {
res.redirect("/identity/view/"+identity.id);
});
});
} else {
res.redirect("/dashboard");
}
});
}
// end /identity/closeness
};