v3.0.0/src/api/routes/service/configPOST.js

38 lines
873 B
JavaScript

const Route = require('../../structures/Route');
const Util = require('../../utils/Util');
const { schema } = require('../../structures/Setting');
const joiOptions = {
abortEarly: false, // include all errors
allowUnknown: true, // ignore unknown props
stripUnknown: true // remove unknown props
};
class configGET extends Route {
constructor() {
super('/service/config', 'post', { adminOnly: true });
}
async run(req, res) {
const { settings } = req.body;
const { error, value } = schema.validate(settings, joiOptions);
if (error) {
return res.status(400).json({
errors: error.details.reduce((acc, v) => {
for (const p of v.path) {
acc[p] = (acc[p] || []).concat(v.message);
}
return acc;
}, {})
});
}
await Util.writeConfigToDb(value);
return res.status(200).json({ value });
}
}
module.exports = configGET;