summaryrefslogtreecommitdiff
path: root/bucky/app/router.js
diff options
context:
space:
mode:
Diffstat (limited to 'bucky/app/router.js')
-rw-r--r--bucky/app/router.js368
1 files changed, 0 insertions, 368 deletions
diff --git a/bucky/app/router.js b/bucky/app/router.js
deleted file mode 100644
index 7380a22..0000000
--- a/bucky/app/router.js
+++ /dev/null
@@ -1,368 +0,0 @@
-var multer = require('multer')()
-var auth = require('../util/auth')
-var middleware = require('../util/middleware')
-var util = require('../util/util')
-
-var db = require('../db')
-var bucky = require('./bucky')
-var search = require('../search/middleware')
-var fortune = require('../db/fortune')
-var federate = require('./federate')
-
-module.exports = function(app){
- app.all('*', middleware.ensureLocals)
-
- auth.init()
-
- app.get("/",
- middleware.ensureAuthenticated,
- function(req, res){
- res.redirect('/index')
- })
- app.get("/index", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/index", {
- title: fortune("titles"),
- hoot_text: fortune("hoots"),
- })
- })
- app.get("/index/:keyword", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/index", {
- title: fortune("titles"),
- hoot_text: fortune("hoots"),
- })
- })
- app.get("/keywords", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/keywords", {})
- })
- app.get("/details/:id", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/details", {})
- })
- app.get("/details/:id/settings", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/details", {})
- })
-
- app.get("/post/",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/post", {title: "Start a new thread"})
- }
- )
- app.get("/post/:keyword",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/post", {title: "Start a new thread"})
- }
- )
- app.get("/comment/:id/edit", middleware.ensureAuthenticated, function(req, res){
- res.render("pages/comment_form", {title: "Edit comment"})
- })
-
- app.get("/profile",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/profile", {title: "profile for " + util.sanitize(req.user.get('username'))})
- })
- app.get("/profile/:username",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/profile", {title: "profile for " + util.sanitize(req.params.username)})
- })
- app.get("/profile/:username/edit",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/profile_form", {title: "edit your profile"})
- })
-
- /* users */
-
- app.get("/api/user/:username",
- middleware.ensureAuthenticated,
- bucky.ensureUser,
- bucky.sanitizeUser,
- function(req, res) {
- res.json(res.user)
- })
- app.post("/api/user/:username",
- middleware.ensureAuthenticated,
- bucky.ensureUser,
- bucky.checkUserPrivacy,
- multer.single("avatar"),
- bucky.updateProfile,
- auth.changePassword,
- bucky.uploadAvatar,
- bucky.saveUser,
- function(req, res){
- res.json(util.sanitizeUser(res.user))
- })
- app.put("/api/checkUsernames",
- middleware.ensureAuthenticated,
- bucky.checkUsernames,
- function(req, res){
- res.send({ usernames: res.usernames })
- })
-
-
- /* threads */
-
- app.get("/api/index",
- bucky.ensureLastlog,
- middleware.ensureAuthenticated,
- bucky.ensureLatestThreads,
- bucky.filterPrivateThreads,
- bucky.ensureCommentCountsForThreads,
- bucky.ensureFileCountsForThreads,
- bucky.ensureKeywordsForThreads,
- bucky.ensureHootbox,
- bucky.bumpLastSeen,
- function(req, res){
- res.json({
- threads: res.threads,
- hootbox: res.hootbox,
- lastlog: res.lastlog,
- })
- })
- app.get("/api/keyword/:keyword",
- bucky.ensureLastlog,
- middleware.ensureAuthenticated,
- bucky.ensureThreadsForKeyword,
- bucky.filterPrivateThreads,
- bucky.ensureCommentCountsForThreads,
- bucky.ensureFileCountsForThreads,
- bucky.ensureKeywordsForThreads,
- bucky.ensureHootbox,
- function(req, res){
- res.json({
- keyword: res.keyword,
- threads: res.threads,
- hootbox: res.hootbox,
- lastlog: res.lastlog,
- })
- })
- app.get("/api/thread/:id",
- middleware.ensureAuthenticated,
- bucky.ensureThread,
- bucky.checkThreadPrivacy,
- bucky.bumpViewCount,
- bucky.ensureKeywordForThread,
- bucky.ensureCommentsForThread,
- bucky.ensureFilesForThread,
- // bucky.ensureThreadUsers,
- bucky.prepareThread,
- bucky.bumpLastSeen,
- function(req, res){
- res.json({
- thread: res.thread,
- comments: res.comments,
- files: res.files,
- keyword: res.keyword,
- })
- })
- app.post("/api/thread",
- middleware.ensureAuthenticated,
- multer.array("files"),
- bucky.verifyFilesOrComment,
- bucky.createThread,
- bucky.createOptionalFiles,
- bucky.createOptionalComment,
- function(req, res){
- res.json(res.thread)
- })
- app.put("/api/thread/:id",
- middleware.ensureAuthenticated,
- bucky.ensureThread,
- bucky.checkThreadPrivacy,
- bucky.updateThreadSettings,
- function(req, res){
- res.json({ status: 'ok' })
- })
- app.delete("/api/thread/:id",
- middleware.ensureAuthenticated,
- bucky.ensureThread,
- bucky.checkThreadPrivacy,
- bucky.ensureCommentsForThread,
- bucky.ensureFilesForThread,
- bucky.destroyThread,
- function(req, res){
- res.sendStatus(200)
- })
-
- /* comments */
-
- app.post("/api/thread/:id/comment",
- middleware.ensureAuthenticated,
- bucky.ensureThread,
- // ensure thread privacy
- multer.array("files"),
- bucky.verifyFilesOrComment,
- bucky.createOptionalFiles,
- bucky.createOptionalComment,
- bucky.bumpThreadRevisions,
- function(req, res){
- res.json({
- comment: res.comment
- })
- })
- app.get("/api/comment/:id",
- middleware.ensureAuthenticated,
- bucky.ensureComment,
- function(req, res){
- res.json({ comment: res.comment })
- })
- // edit a comment
- app.put("/api/comment/:id",
- middleware.ensureAuthenticated,
- bucky.ensureComment,
- bucky.checkCommentPrivacy,
- bucky.ensureCommentThread,
- bucky.updateComment,
- bucky.bumpThreadRevisions,
- function(req, res){
- res.json({ comment: res.comment })
- })
- // delete a comment
- app.delete("/api/comment/:id",
- middleware.ensureAuthenticated,
- bucky.ensureComment,
- bucky.checkCommentPrivacy,
- bucky.destroyComment,
- function(req, res){
- res.sendStatus(200)
- })
-
- /* search */
-
- app.get("/search/",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/search", {title: "search" })
- })
- app.get("/api/search",
- middleware.ensureAuthenticated,
- search.search,
- search.getThreads,
- search.getComments,
- search.getFiles,
- search.logQuery,
- search.success
- )
-
- /* keywords */
-
- app.get("/api/keywords",
- middleware.ensureAuthenticated,
- bucky.ensureKeywords,
- function(req, res){
- res.json({
- keywords: res.keywords,
- })
- })
- app.get("/api/keywords/statistics",
- middleware.ensureAuthenticated,
- bucky.ensureKeywords,
- bucky.ensureThreadGroups,
- function(req, res){
- res.json({
- keywords: res.keywords,
- threadGroups: res.threadGroups,
- })
- })
- app.get("/api/keyword/:keyword",
- middleware.ensureAuthenticated,
- bucky.ensureKeyword,
- bucky.ensureThreadsForKeyword,
- bucky.filterPrivateThreads,
- bucky.ensureCommentCountsForThreads,
- bucky.ensureFileCountsForThreads,
- bucky.ensureKeywordsForThreads,
- function(req, res){
- res.json({
- keyword: res.keyword,
- threads: res.threads,
- })
- })
-
- /* mail */
-
- app.get("/mail/",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/mailbox", {title: "your inbox" })
- })
- app.get("/mail/compose",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/compose", {
- title: "new message",
- subject: fortune("subjects"),
- verb: "wrote",
- })
- })
- app.get("/mail/:box",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/mailbox", { title: "your " + util.sanitize(req.params.box) })
- })
- app.get("/mail/compose/:username",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/compose", {
- title: "new message",
- subject: fortune("subjects"),
- verb: "wrote",
- })
- })
- app.get("/mail/read/:id",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/message", {
- title: "read message"
- })
- })
- app.get("/mail/reply/:id",
- middleware.ensureAuthenticated,
- function(req, res){
- res.render("pages/compose", {
- title: "reply to message",
- subject: fortune("subjects"),
- verb: fortune("mail-verbs"),
- })
- })
- 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,
- bucky.markMessageUnread,
- function(req, res){
- res.json({
- message: res.message,
- })
- })
- app.post("/api/mail/send",
- middleware.ensureAuthenticated,
- bucky.ensureRecipient,
- bucky.sendMessage,
- bucky.deleteDraft,
- function(req, res){
- res.json({ status: "ok" })
- })
- app.delete("/api/message/:id",
- middleware.ensureAuthenticated,
- bucky.ensureMessage,
- bucky.destroyMessage,
- function(req, res){
- res.json({ status: "ok" })
- })
-
- auth.route(app)
-}