summaryrefslogtreecommitdiff
path: root/bucky
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-12-10 07:02:47 +0100
committerJules Laplace <julescarbon@gmail.com>2017-12-10 07:02:47 +0100
commit9e6b80c0321ba1fbe1c824083acbeeac7b7b94d4 (patch)
tree67cd6d247cd1bc15c43ebad10e2f02249217e8ca /bucky
parenta932b664db987f2cf9ceefe9bb56e43793470d5e (diff)
post form and other stuff
Diffstat (limited to 'bucky')
-rw-r--r--bucky/app/bucky.js26
-rw-r--r--bucky/app/index.js2
-rw-r--r--bucky/app/router.js26
-rw-r--r--bucky/db/index.js5
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()