summaryrefslogtreecommitdiff
path: root/bucky/app/router.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-12-08 02:18:49 +0100
committerJules Laplace <julescarbon@gmail.com>2017-12-08 02:18:49 +0100
commitbbbd8bbab8737f5067c85376daf79cd8a5a9c4cb (patch)
tree844d1385d7b88623eee3c2ea2c420280006ad349 /bucky/app/router.js
parente4e0cf21a31b74d5ee1e6d45b343ea60ed44f372 (diff)
parentdf674eef8e20c43426c0af5aa3d1a09b5e24c58a (diff)
merge
Diffstat (limited to 'bucky/app/router.js')
-rw-r--r--bucky/app/router.js156
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
+ }
+ )
+
+}