Add support for JSON POST

Add support for JSON POST
This commit is contained in:
Manuel Nuñez 2018-01-29 21:28:50 -03:00 committed by GitHub
parent ad7702aaf4
commit 1aff82242a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 1 deletions

View File

@ -52,6 +52,7 @@ DocumentHandler.prototype.handlePost = function (request, response) {
var _this = this; var _this = this;
var buffer = ''; var buffer = '';
var cancelled = false; var cancelled = false;
var ct = request.headers['content-type'];
// What to do when done // What to do when done
var onSuccess = function () { var onSuccess = function () {
@ -65,6 +66,19 @@ DocumentHandler.prototype.handlePost = function (request, response) {
); );
return; return;
} }
//added support for json data
if (ct && ct.split(';')[0] === 'application/json') {
try {
let json = JSON.parse(buffer);
buffer = json.data;
} catch(e) {
winston.verbose('error adding document');
response.writeHead(500, { 'content-type': 'application/json' });
response.end(JSON.stringify({ message: 'invalid JSON received.' }));
}
}
// And then save if we should // And then save if we should
_this.chooseKey(function (key) { _this.chooseKey(function (key) {
_this.store.set(key, buffer, function (res) { _this.store.set(key, buffer, function (res) {
@ -83,7 +97,6 @@ DocumentHandler.prototype.handlePost = function (request, response) {
}; };
// If we should, parse a form to grab the data // If we should, parse a form to grab the data
var ct = request.headers['content-type'];
if (ct && ct.split(';')[0] === 'multipart/form-data') { if (ct && ct.split(';')[0] === 'multipart/form-data') {
var busboy = new Busboy({ headers: request.headers }); var busboy = new Busboy({ headers: request.headers });
busboy.on('field', function (fieldname, val) { busboy.on('field', function (fieldname, val) {