feat: add support for later forecasts and implement force update functionality for rules
This commit is contained in:
@@ -44,6 +44,29 @@ app.use('/connect', require('./routes/connect'));
|
||||
app.use('/sensors', require('./routes/sensors'));
|
||||
app.use('/sessions', require('./routes/sessions'));
|
||||
|
||||
/**
|
||||
* POST /push-rules — Riceve rules attive dall'API e le pusha a tutti i sensori connessi.
|
||||
* Autenticato con x-api-key (service-to-service).
|
||||
*/
|
||||
app.post('/push-rules', (req, res) => {
|
||||
const apiKey = req.headers['x-api-key'];
|
||||
if (!apiKey || apiKey !== process.env.INTERNAL_API_KEY) {
|
||||
return res.status(401).json({ error: 'unauthorized' });
|
||||
}
|
||||
|
||||
const payload = req.body;
|
||||
if (!payload || Object.keys(payload).length === 0) {
|
||||
return res.status(400).json({ error: 'empty payload' });
|
||||
}
|
||||
|
||||
// Wrappa con _t per identificare il tipo di messaggio nel plugin
|
||||
const message = { _t: 'rules_update', ...payload };
|
||||
const sensors = wsHandler.pushToAllSensors(message);
|
||||
|
||||
console.log(`[PUSH-RULES] Inviato a ${sensors} sensori:`, Object.keys(payload));
|
||||
res.json({ status: 'ok', sensors });
|
||||
});
|
||||
|
||||
const server = app.listen(3000, '0.0.0.0', () => {
|
||||
console.log(`Realtime started`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user