From 72f5f956396a59b14cbc68fd85a58ee0d68c2788 Mon Sep 17 00:00:00 2001 From: Benjamin Ludewig Date: Fri, 15 Mar 2019 16:18:33 +0100 Subject: [PATCH] fix: import should use mime.lookup() for filename --- lib/routes/admin-api/state.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/routes/admin-api/state.js b/lib/routes/admin-api/state.js index 15b384bbd1..00a263435b 100644 --- a/lib/routes/admin-api/state.js +++ b/lib/routes/admin-api/state.js @@ -4,6 +4,7 @@ const Controller = require('../controller'); const { ADMIN } = require('../../permissions'); const extractUser = require('../../extract-user'); const { handleErrors } = require('./util'); +const mime = require('mime'); const YAML = require('js-yaml'); const moment = require('moment'); const multer = require('multer'); @@ -20,18 +21,18 @@ class StateController extends Controller { const userName = extractUser(req); const { drop } = req.query; - let data; - if (req.file) { - if (req.file.mimetype === 'text/yaml') { - data = YAML.safeLoad(req.file.buffer); - } else { - data = JSON.parse(req.file.buffer); - } - } else { - data = req.body; - } - try { + let data; + if (req.file) { + if (mime.lookup(req.file.originalname) === 'text/yaml') { + data = YAML.safeLoad(req.file.buffer); + } else { + data = JSON.parse(req.file.buffer); + } + } else { + data = req.body; + } + await this.config.stateService.import({ data, userName,