From 31b966ff4ef3e5fe5f5a652dbf27d7322222088e Mon Sep 17 00:00:00 2001 From: Michael Gregorio Date: Thu, 14 Sep 2017 18:57:04 +0800 Subject: [PATCH 1/2] fix aws file upload error handling --- index.js | 2 +- server/aws.js | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index cfa502d4..f7bc2453 100644 --- a/index.js +++ b/index.js @@ -416,7 +416,7 @@ function cms(loopbackApplication, options) { aws.getS3Credentials(req.query["path"], req.query["fileType"], function(error, credentials) { if (error) { - res.status(500).send(error); + res.status(error.status).send(error.message); } res.send(credentials); }); diff --git a/server/aws.js b/server/aws.js index 1600a5ce..dffb5ec4 100644 --- a/server/aws.js +++ b/server/aws.js @@ -38,16 +38,26 @@ var awsConfig; function getS3Credentials(path, fileType, callback) { var acceptableFileTypes = awsConfig.s3.path[path]; if (!acceptableFileTypes) { - callback({error: "Invalid path value"}); + var error = new Error('Invalid path value'); + var error.status = 400; + callback(error); return; } if (fileType == undefined || fileType == null) { - callback({error: "Please provide a fileType"}); + var error = new Error('Please provide a fileType'); + var error.status = 400; + callback(error); return; } var fileExtension = acceptableFileTypes[fileType]; if (!fileExtension) { - callback({error: "Invalid fileType for path"}); + var files = []; + _.each(acceptableFileTypes, function(type) { + files.push(type); + }); + var error = new Error('The file being uploaded is not an accepted file type for this form. Allowed file types are (' + files.join(', ') + ').'); + error.status = 400; + callback(error); return; } var expirationLength = 900; //15min From 0cc388acfd4461b9b20fc48c1eabdaff1fb4fcb0 Mon Sep 17 00:00:00 2001 From: Michael Gregorio Date: Fri, 6 Oct 2017 11:15:50 +0800 Subject: [PATCH 2/2] add missing lodash module --- server/aws.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/aws.js b/server/aws.js index dffb5ec4..a296ad77 100644 --- a/server/aws.js +++ b/server/aws.js @@ -22,6 +22,7 @@ THE SOFTWARE. */ +var _ = require('lodash'); var uuid = require('node-uuid'); var moment = require("moment"); var crypto = require("crypto"); @@ -52,7 +53,7 @@ function getS3Credentials(path, fileType, callback) { var fileExtension = acceptableFileTypes[fileType]; if (!fileExtension) { var files = []; - _.each(acceptableFileTypes, function(type) { + _.forEach(acceptableFileTypes, function(type) { files.push(type); }); var error = new Error('The file being uploaded is not an accepted file type for this form. Allowed file types are (' + files.join(', ') + ').');