diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2017-12-08 02:18:49 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2017-12-08 02:18:49 +0100 |
| commit | bbbd8bbab8737f5067c85376daf79cd8a5a9c4cb (patch) | |
| tree | 844d1385d7b88623eee3c2ea2c420280006ad349 /bucky/app/router.js | |
| parent | e4e0cf21a31b74d5ee1e6d45b343ea60ed44f372 (diff) | |
| parent | df674eef8e20c43426c0af5aa3d1a09b5e24c58a (diff) | |
merge
Diffstat (limited to 'bucky/app/router.js')
| -rw-r--r-- | bucky/app/router.js | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/bucky/app/router.js b/bucky/app/router.js new file mode 100644 index 0000000..c3af565 --- /dev/null +++ b/bucky/app/router.js @@ -0,0 +1,156 @@ +var auth = require('./auth') +var middleware = require('./middleware') +var fortune = require('./fortune') +var bucky = require('./bucky') +var db = require('./db') +var util = require('./util') + +module.exports = function(app){ + app.all('*', middleware.ensureLocals) + + auth.init() + + app.get("/", middleware.ensureAuthenticated, function(req, res){ + res.redirect('/index') + }) + app.get("/login", function(req, res){ + res.render("pages/login", { + title: "login" + }) + }) + app.get("/index", middleware.ensureAuthenticated, function(req, res){ + res.render("pages/index", { + title: fortune("titles"), + hoot_text: fortune("hoots"), + }) + }) + app.get("/details/:id", middleware.ensureAuthenticated, function(req, res){ + res.render("pages/details", {}) + }) + + app.post("/api/login", auth.loggedInLocal) + app.get("/api/index", + bucky.ensureLastlog, + middleware.ensureAuthenticated, + bucky.ensureLatestThreads, + bucky.ensureCommentCountsForThreads, + bucky.ensureFileCountsForThreads, + bucky.ensureKeywordsForThreads, + bucky.ensureHootbox, + function(req, res){ + res.json({ + threads: res.threads, + hootbox: res.hootbox, + lastlog: res.lastlog, + }) + } + ) + app.get("/api/thread/:id", + middleware.ensureAuthenticated, + bucky.ensureThread, + bucky.ensureKeywordForThread, + bucky.ensureCommentsForThread, + bucky.ensureFilesForThread, + function(req, res){ + res.json({ + thread: res.thread, + comments: res.comments, + files: res.files, + keyword: res.keyword, + }) + } + ) + app.post("/api/thread", + middleware.ensureAuthenticated, + function(req, res){ + // make a new thread + }) + app.post("/api/thread/:id/comment", + middleware.ensureAuthenticated, + bucky.ensureThread, + // ensure thread privacy + bucky.createComment, + function(req, res){ + res.json({ + comment: res.comment + }) + }) + app.delete("/api/thread/:id", + middleware.ensureAuthenticated, + function(req, res){ + // delete a thread + }) + app.put("/api/comment/:id", + middleware.ensureAuthenticated, + function(req, res){ + // edit a comment + }) + app.delete("/api/comment/:id", + middleware.ensureAuthenticated, + function(req, res){ + // delete a comment + }) + + + app.get("/api/keyword/:keyword", + middleware.ensureAuthenticated, + bucky.ensureKeyword, + bucky.ensureThreadsForKeyword, + bucky.ensureCommentCountsForThreads, + bucky.ensureFileCountsForThreads, + bucky.ensureKeywordsForThreads, + function(req, res){ + res.json({ + keyword: res.keyword, + threads: res.threads, + }) + } + ) + + app.get("/mail/", + middleware.ensureAuthenticated, + function(req, res){ + res.render("pages/mailbox", {title: "inbox" }) + } + ) + app.get("/mail/:box", + middleware.ensureAuthenticated, + function(req, res){ + res.render("pages/mailbox", { title: util.sanitize(req.params.box) }) + } + ) + app.get("/message/:id", + middleware.ensureAuthenticated, + function(req, res){ + res.render("pages/message", { title: util.sanitize(req.params.box) }) + } + ) + app.get("/api/mailbox/:box", + middleware.ensureAuthenticated, + bucky.ensureMailboxes, + bucky.ensureMailboxCounts, + bucky.ensureMessages, + function(req, res){ + res.json({ + user: { id: req.user.get("id"), username: req.user.get("username") }, + messages: res.messages, + boxes: res.boxes, + }) + } + ) + app.get("/api/message/:id", + middleware.ensureAuthenticated, + bucky.ensureMessage, + function(req, res){ + res.json({ + message: res.message, + }) + }) + app.post("/mail/", + middleware.ensureAuthenticated, + function(req, res){ + // send new mail + } + ) + +} |
