forked from cnodejs/nodeclub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
routes.js
119 lines (102 loc) · 4.09 KB
/
routes.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
109
110
111
112
113
114
115
116
117
118
119
/*!
* nodeclub - route.js
* Copyright(c) 2012 fengmk2 <[email protected]>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var sign = require('./controllers/sign');
var site = require('./controllers/site');
var user = require('./controllers/user');
var message = require('./controllers/message');
var tag = require('./controllers/tag');
var topic = require('./controllers/topic');
var reply = require('./controllers/reply');
var rss = require('./controllers/rss');
var upload = require('./controllers/upload');
var assets = require('./controllers/static');
var tools = require('./controllers/tools');
var auth = require('./midderwares/auth');
var limit = require('./midderwares/limit');
var status = require('./controllers/status');
module.exports = function (app) {
// home page
app.get('/', site.index);
// sign up, login, logout
app.get('/signup', sign.showSignup);
app.post('/signup', sign.signup);
app.get('/signout', sign.signout);
app.get('/signin', sign.showLogin);
app.post('/signin', sign.login);
app.get('/active_account', sign.active_account);
// password
app.get('/search_pass', sign.showSearchPass);
app.post('/search_pass', sign.updateSearchPass);
app.get('/reset_pass', sign.reset_pass);
app.post('/reset_pass', sign.update_pass);
// user
app.get('/user/:name', user.index);
app.get('/setting', user.showSetting);
app.post('/setting', user.setting);
app.get('/stars', user.show_stars);
app.get('/users/top100', user.top100);
app.get('/user/:name/tags', user.get_collect_tags);
app.get('/user/:name/collections', user.get_collect_topics);
app.get('/my/messages', message.index);
app.get('/user/:name/follower', user.get_followers);
app.get('/user/:name/following', user.get_followings);
app.get('/user/:name/topics', user.list_topics);
app.get('/user/:name/replies', user.list_replies);
app.post('/user/follow', auth.userRequired, user.follow);
app.post('/user/un_follow', user.un_follow);
app.post('/user/set_star', user.toggle_star);
app.post('/user/cancel_star', user.toggle_star);
// message
app.post('/messages/mark_read', message.mark_read);
app.post('/messages/mark_all_read', message.mark_all_read);
// tag
app.get('/tags/edit', tag.edit_tags);
app.get('/tag/:name', tag.list_topic);
// 编辑界面
app.get('/tag/:name/edit', auth, tag.edit);
app.get('/tag/:name/delete', tag.delete);
app.post('/tag/add', tag.add);
// 更新
app.post('/tag/:name/edit', auth, tag.update);
app.post('/tag/collect', tag.collect);
app.post('/tag/de_collect', auth.userRequired, tag.de_collect);
// topic
// 新建文章界面
app.get('/topic/create', auth.signinRequired, topic.create);
app.get('/topic/:tid', topic.index);
app.get('/topic/:tid/top/:is_top?', topic.top);
app.get('/topic/:tid/edit', topic.showEdit);
// Po-Ying Chen <[email protected]>: 當 "非" 作者的使用者在留言的地方貼上一個網址為
// http://[domain name]/topic/[topic id]/delete 的圖片之後,只要作者一看到圖片,文章就會被刪除了,
// 可能需要將刪除的方法改成 post 來避免此問題
app.post('/topic/:tid/delete', topic.delete);
// 保存新建的文章
// TODO: 如果创建文章的过程太长,导致session过期,界面的内容会丢失
// FIXME: 采用前端来判断,不通过跳转的形式来解决
app.post('/topic/create', auth.signinRequired, limit.postInterval, topic.put);
app.post('/topic/:tid/edit', topic.update);
app.post('/topic/collect', auth.userRequired, topic.collect);
app.post('/topic/de_collect', auth.userRequired, topic.de_collect);
// reply
// 回复
app.post('/:topic_id/reply', auth.userRequired, limit.postInterval, reply.add);
app.post('/:topic_id/reply2', auth.userRequired, limit.postInterval, reply.add_reply2);
app.post('/reply/:reply_id/delete', reply.delete);
// upload
app.post('/upload/image', upload.uploadImage);
// tools
app.get('/site_tools', tools.run_site_tools);
// static
app.get('/about', assets.about);
app.get('/faq', assets.faq);
//rss
app.get('/rss', rss.index);
// site status
app.get('/status', status.status);
};