summaryrefslogtreecommitdiff
path: root/bucky
diff options
context:
space:
mode:
Diffstat (limited to 'bucky')
-rw-r--r--bucky/app/bucky.js22
-rw-r--r--bucky/app/index.js4
-rw-r--r--bucky/app/router.js8
-rw-r--r--bucky/db/index.js3
-rw-r--r--bucky/util/util.js2
5 files changed, 35 insertions, 4 deletions
diff --git a/bucky/app/bucky.js b/bucky/app/bucky.js
index 43799fe..008427d 100644
--- a/bucky/app/bucky.js
+++ b/bucky/app/bucky.js
@@ -1,5 +1,5 @@
var db = require('../db')
-var util = require('../lib/util')
+var util = require('../util/util')
var _ = require('lodash')
var bucky = module.exports = {
@@ -136,6 +136,26 @@ var bucky = module.exports = {
})
},
+ /* COMMENTS */
+
+ createComment: function (req, res, next){
+ if (! req.body.comment || ! req.body.comment.length) {
+ res.json({ error: "no comment" })
+ 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()
+ })
+ },
+
/* MAIL */
ensureMailboxes: function (req, res, next){
diff --git a/bucky/app/index.js b/bucky/app/index.js
index ad97526..d06b018 100644
--- a/bucky/app/index.js
+++ b/bucky/app/index.js
@@ -23,8 +23,8 @@ site.init = function(){
app = express()
app.set('port', 5000)
app.set('view engine', 'ejs')
- app.set('views', path.join(__dirname, '../views'))
- app.use(express.static(path.join(__dirname, '../public')))
+ app.set('views', path.join(__dirname, '../../views'))
+ app.use(express.static(path.join(__dirname, '../../public')))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use( multer({ dest:'./uploads/' }).single("file") )
diff --git a/bucky/app/router.js b/bucky/app/router.js
index 7ac6599..fe7d336 100644
--- a/bucky/app/router.js
+++ b/bucky/app/router.js
@@ -66,8 +66,14 @@ module.exports = function(app){
})
app.post("/api/thread/:id/comment",
middleware.ensureAuthenticated,
+ bucky.ensureThread,
+ // ensure thread privacy
+ bucky.createComment,
+ // add comments and files
function(req, res){
- // add comments and files
+ res.json({
+ comment: res.comment
+ })
})
app.delete("/api/thread/:id",
middleware.ensureAuthenticated,
diff --git a/bucky/db/index.js b/bucky/db/index.js
index b6fa235..77e94fa 100644
--- a/bucky/db/index.js
+++ b/bucky/db/index.js
@@ -111,6 +111,9 @@ db.getCommentsForThread = function (id, limit, offset, order){
db.getCommentCounts = function(ids){
return knex.column('thread').count('* as count').select().from('comments').where('thread', 'in', ids).groupBy('thread')
}
+db.createComment = function(comment){
+ return new Comment(comment).save()
+}
/* KEYWORDS */
diff --git a/bucky/util/util.js b/bucky/util/util.js
index e67488b..d4b6b8a 100644
--- a/bucky/util/util.js
+++ b/bucky/util/util.js
@@ -2,3 +2,5 @@ var util = module.exports = {}
util.sanitizeName = function (s){ return (s || "").replace(new RegExp("[^-_a-zA-Z0-9]", 'g'), "") }
util.sanitize = function (s){ return (s || "").replace(/<>&/g, "") }
+
+util.now = function(){ return Math.floor( (+ new Date()) / 1000 ) }