51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
import dashboardService from '../services/dashboardService.js';
|
||
|
||
function getHashedUserId(req) {
|
||
return req.headers?.userid;
|
||
}
|
||
|
||
export default {
|
||
/** Liste der möglichen Widget-Typen (öffentlich, keine Auth nötig wenn gewünscht – aktuell mit Auth). */
|
||
async getAvailableWidgets(req, res) {
|
||
try {
|
||
const list = await dashboardService.getAvailableWidgets();
|
||
res.json(list);
|
||
} catch (error) {
|
||
console.error('Dashboard getAvailableWidgets:', error);
|
||
res.status(500).json({ error: error.message || 'Internal server error' });
|
||
}
|
||
},
|
||
|
||
async getConfig(req, res) {
|
||
const hashedUserId = getHashedUserId(req);
|
||
if (!hashedUserId) {
|
||
return res.status(401).json({ error: 'Unauthorized' });
|
||
}
|
||
try {
|
||
const config = await dashboardService.getConfig(hashedUserId);
|
||
res.json(config);
|
||
} catch (error) {
|
||
console.error('Dashboard getConfig:', error);
|
||
res.status(500).json({ error: error.message || 'Internal server error' });
|
||
}
|
||
},
|
||
|
||
async setConfig(req, res) {
|
||
const hashedUserId = getHashedUserId(req);
|
||
if (!hashedUserId) {
|
||
return res.status(401).json({ error: 'Unauthorized' });
|
||
}
|
||
const config = req.body;
|
||
if (!config || typeof config !== 'object') {
|
||
return res.status(400).json({ error: 'Invalid config' });
|
||
}
|
||
try {
|
||
const result = await dashboardService.setConfig(hashedUserId, config);
|
||
res.json(result);
|
||
} catch (error) {
|
||
console.error('Dashboard setConfig:', error);
|
||
res.status(500).json({ error: error.message || 'Internal server error' });
|
||
}
|
||
}
|
||
};
|