mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
* Migrating Fredy from LowDb to SqLite 🎉
* adding new sql migration system for future sql migrations
* adding setting to change sqlite path for db files
* create migration plan for graceful migration lowdb -> sqlite
* Improving Documentation
* adding test for sqliteconnection
* upgrading dependencies
* making nodejs 22 as min version
* improve scraper
* adding overwrite ability for db migra
31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
import restana from 'restana';
|
|
import { config, getDirName, readConfigFromStorage, refreshConfig } from '../../utils.js';
|
|
import fs from 'fs';
|
|
import { ensureDemoUserExists } from '../../services/storage/userStorage.js';
|
|
import logger from '../../services/logger.js';
|
|
const service = restana();
|
|
const generalSettingsRouter = service.newRouter();
|
|
generalSettingsRouter.get('/', async (req, res) => {
|
|
res.body = Object.assign({}, config);
|
|
res.send();
|
|
});
|
|
generalSettingsRouter.post('/', async (req, res) => {
|
|
const settings = req.body;
|
|
try {
|
|
if (config.demoMode) {
|
|
res.send(new Error('In demo mode, it is not allowed to change these settings.'));
|
|
return;
|
|
}
|
|
const currentConfig = await readConfigFromStorage();
|
|
fs.writeFileSync(`${getDirName()}/../conf/config.json`, JSON.stringify({ ...currentConfig, ...settings }));
|
|
await refreshConfig();
|
|
ensureDemoUserExists();
|
|
} catch (err) {
|
|
logger.error(err);
|
|
res.send(new Error('Error while trying to write settings.'));
|
|
return;
|
|
}
|
|
res.send();
|
|
});
|
|
export { generalSettingsRouter };
|