Refactoring imageRouter to modularity

This should make the imageRouter more modular and easier to extent. Also
a lot of code duplication was removed which should simplify maintenance
in future.

In the new setup we only need to provide a new module file which exports
a function called `uploadImage` and takes a filePath and a callback as
argument. The callback itself takes an error and an url as parameter.
This eliminates the need of a try-catch-block around the statement and
re-enabled the optimization in NodeJS.

Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
This commit is contained in:
Sheogorath 2018-03-18 02:14:50 +01:00
parent 9cbe03d8a8
commit 1756e76dc3
No known key found for this signature in database
GPG key ID: 1F05CC3635CDDFFD
7 changed files with 190 additions and 132 deletions

View file

@ -6,6 +6,7 @@ const path = require('path')
const {merge} = require('lodash')
const deepFreeze = require('deep-freeze')
const {Environment, Permission} = require('./enum')
const logger = require('../logger')
const appRootPath = path.join(__dirname, '../../')
const env = process.env.NODE_ENV || Environment.development
@ -103,6 +104,12 @@ if (config.imageUploadType && !config.imageuploadtype) {
config.imageuploadtype = config.imageUploadType
}
// Validate upload upload providers
if (['filesystem', 's3', 'minio', 'imgur'].indexOf(config.imageuploadtype) === -1) {
logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio" or "imgur". Defaulting to "imgur"')
config.imageuploadtype = 'imgur'
}
// figure out mime types for image uploads
switch (config.imageuploadtype) {
case 'imgur':