35 lines
780 B
TypeScript
35 lines
780 B
TypeScript
|
import { availableLocales } from '../../util/localization';
|
||
|
import parseBool from '../../util/parseBool';
|
||
|
import withSession from '../../util/session';
|
||
|
|
||
|
export default withSession(async (req, res) => {
|
||
|
if (!req.body) {
|
||
|
res.status(400).json({
|
||
|
success: false,
|
||
|
error: 'bad request',
|
||
|
});
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (req.body.enableDark) {
|
||
|
const enableDark = parseBool(req.body.enableDark);
|
||
|
req.session.set('enable-dark', enableDark);
|
||
|
}
|
||
|
|
||
|
if (req.body.locale) {
|
||
|
if (!availableLocales.includes(req.body.locale)) {
|
||
|
res.status(400).json({
|
||
|
success: false,
|
||
|
error: 'wanted locale does not exist',
|
||
|
});
|
||
|
}
|
||
|
req.session.set('locale', req.body.locale);
|
||
|
}
|
||
|
|
||
|
await req.session.save();
|
||
|
|
||
|
res.json({
|
||
|
success: true,
|
||
|
});
|
||
|
});
|