mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
fix: #9169, re-adding v2-style behaviour so as to not break the API... yet
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
if (isV2) {
|
||||
res.status(200).json(images);
|
||||
} else {
|
||||
helpers.formatApiResponse(200, res, { images });
|
||||
}
|
||||
|
||||
return images;
|
||||
} catch (err) {
|
||||
if (isV2) {
|
||||
res.status(500).json({ path: req.path, error: err.message });
|
||||
} else {
|
||||
return helpers.formatApiResponse(500, res, err);
|
||||
}
|
||||
} finally {
|
||||
deleteTempFiles(files);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user