fix: #9169, re-adding v2-style behaviour so as to not break the API... yet

v1.18.x
Julian Lam 4 years ago
parent aa95cc7d60
commit b742229e59

@ -16,11 +16,19 @@ const helpers = require('./helpers');
const uploadsController = module.exports;
uploadsController.upload = async function (req, res, filesIterator) {
let files = req.files.files;
let files;
try {
files = req.files.files;
} catch (e) {
return helpers.formatApiResponse(400, res);
}
// TODO: Remove this (and the usages of isV2 below) in v1.17.0
const isV2 = req.originalUrl === `${nconf.get('relative_path')}/api/v2/util/upload`;
// These checks added because of odd behaviour by request: https://github.com/request/request/issues/2445
if (!Array.isArray(files)) {
return helpers.formatApiResponse(500, res, new Error('[[error:invalid-file]]'));
return isV2 ? res.status(500).json('invalid files') : helpers.formatApiResponse(500, res, new Error('[[error:invalid-file]]'));
}
if (Array.isArray(files[0])) {
files = files[0];
@ -32,10 +40,20 @@ uploadsController.upload = async function (req, res, filesIterator) {
/* eslint-disable no-await-in-loop */
images.push(await filesIterator(fileObj));
}
helpers.formatApiResponse(200, res, { images });
if (isV2) {
res.status(200).json(images);
} else {
helpers.formatApiResponse(200, res, { images });
}
return images;
} catch (err) {
return helpers.formatApiResponse(500, res, err);
if (isV2) {
res.status(500).json({ path: req.path, error: err.message });
} else {
return helpers.formatApiResponse(500, res, err);
}
} finally {
deleteTempFiles(files);
}

Loading…
Cancel
Save