diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2017-12-10 07:02:47 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2017-12-10 07:02:47 +0100 |
| commit | 9e6b80c0321ba1fbe1c824083acbeeac7b7b94d4 (patch) | |
| tree | 67cd6d247cd1bc15c43ebad10e2f02249217e8ca /bucky | |
| parent | a932b664db987f2cf9ceefe9bb56e43793470d5e (diff) | |
post form and other stuff
Diffstat (limited to 'bucky')
| -rw-r--r-- | bucky/app/bucky.js | 26 | ||||
| -rw-r--r-- | bucky/app/index.js | 2 | ||||
| -rw-r--r-- | bucky/app/router.js | 26 | ||||
| -rw-r--r-- | bucky/db/index.js | 5 |
4 files changed, 56 insertions, 3 deletions
diff --git a/bucky/app/bucky.js b/bucky/app/bucky.js index d1aad4d..876a769 100644 --- a/bucky/app/bucky.js +++ b/bucky/app/bucky.js @@ -71,6 +71,23 @@ var bucky = module.exports = { next() }) }, + createThread: function (req, res, next){ + if (! req.body.title || ! req.body.title.length) { + res.json({ error: "no title" }) + return + } + var data = { + thread: res.thread.get('id'), + parent_id: req.body.parent_id || -1, + username: req.user.get('username'), + date: util.now(), + comment: req.body.comment, + } + db.createComment(data).then(function(comment){ + res.comment = comment + next() + }) + }, /* DETAILS */ @@ -125,6 +142,15 @@ var bucky = module.exports = { next() }) }, + ensureKeywords: function (req, res, next){ + db.getKeywords().then(function(k){ + if (! k) { + return res.sendStatus(404) + } + res.keywords = k + next() + }) + }, ensureThreadsForKeyword: function (req, res, next){ var keyword = req.params.keyword if (! keyword) { diff --git a/bucky/app/index.js b/bucky/app/index.js index 1231914..b88471c 100644 --- a/bucky/app/index.js +++ b/bucky/app/index.js @@ -30,7 +30,7 @@ site.init = function(){ app.use(favicon(__dirname + '../../../public/favicon.ico')) app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) - app.use( multer({ dest:'./uploads/' }).single("file") ) + app.use( multer({ dest:'./uploads/' }).multiple("files") ) app.use(session({ key: 'bucky.sid', diff --git a/bucky/app/router.js b/bucky/app/router.js index 2fd8d83..c8392da 100644 --- a/bucky/app/router.js +++ b/bucky/app/router.js @@ -28,7 +28,20 @@ module.exports = function(app){ app.get("/details/:id", 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.post("/api/login", auth.loggedInLocal) app.get("/api/index", bucky.ensureLastlog, @@ -63,8 +76,10 @@ module.exports = function(app){ ) app.post("/api/thread", middleware.ensureAuthenticated, + bucky.createComment, function(req, res){ // make a new thread + res.json(res.thread) }) app.post("/api/thread/:id/comment", middleware.ensureAuthenticated, @@ -108,6 +123,15 @@ module.exports = function(app){ search.success ) + app.get("/api/keywords", + middleware.ensureAuthenticated, + bucky.ensureKeywords, + function(req, res){ + res.json({ + keywords: res.keywords, + }) + } + ) app.get("/api/keyword/:keyword", middleware.ensureAuthenticated, bucky.ensureKeyword, diff --git a/bucky/db/index.js b/bucky/db/index.js index f7adb7a..3e88fb7 100644 --- a/bucky/db/index.js +++ b/bucky/db/index.js @@ -141,7 +141,10 @@ db.removeComment = function(id){ /* KEYWORDS */ db.getKeywords = function (keywords){ - return Keyword.query("where", "keyword", "in", keywords).fetchAll() + if (keywords) { + return Keyword.query("where", "keyword", "in", keywords).fetchAll() + } + return Keyword.fetchAll() } db.getKeyword = function (keyword) { return Keyword.query("where", "keyword", "=", keyword).fetch() |
