From f47601857e9774731d5997f5c3b3256cf8bb623b Mon Sep 17 00:00:00 2001
From: Dustin Frisch <fooker@lab.sh>
Date: Thu, 11 Jan 2018 00:51:22 +0100
Subject: [PATCH] Allow posting new note with content

Signed-off-by: Dustin Frisch <fooker@lab.sh>
---
 lib/response.js       | 3 ++-
 lib/web/noteRouter.js | 4 ++++
 lib/web/utils.js      | 7 +++++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/response.js b/lib/response.js
index 9f3d5a4..2e8924b 100644
--- a/lib/response.js
+++ b/lib/response.js
@@ -117,7 +117,8 @@ function newNote (req, res, next) {
   }
   models.Note.create({
     ownerId: owner,
-    alias: req.alias ? req.alias : null
+    alias: req.alias ? req.alias : null,
+    content: req.body ? req.body : ''
   }).then(function (note) {
     return res.redirect(config.serverurl + '/' + LZString.compressToBase64(note.id))
   }).catch(function (err) {
diff --git a/lib/web/noteRouter.js b/lib/web/noteRouter.js
index 007c02c..41bf5f7 100644
--- a/lib/web/noteRouter.js
+++ b/lib/web/noteRouter.js
@@ -4,10 +4,14 @@ const Router = require('express').Router
 
 const response = require('../response')
 
+const {markdownParser} = require('./utils')
+
 const noteRouter = module.exports = Router()
 
 // get new note
 noteRouter.get('/new', response.newNote)
+// post new note with content
+noteRouter.post('/new', markdownParser, response.newNote)
 // get publish note
 noteRouter.get('/s/:shortid', response.showPublishNote)
 // publish note actions
diff --git a/lib/web/utils.js b/lib/web/utils.js
index c901652..d58294a 100644
--- a/lib/web/utils.js
+++ b/lib/web/utils.js
@@ -7,3 +7,10 @@ exports.urlencodedParser = bodyParser.urlencoded({
   extended: false,
   limit: 1024 * 1024 * 10 // 10 mb
 })
+
+// create text/markdown parser
+exports.markdownParser = bodyParser.text({
+  inflate: true,
+  type: ['text/plain', 'text/markdown'],
+  limit: 1024 * 1024 * 10 // 10 mb
+})