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' }); } } };