feat: zentrales Pushover-Logging + neuer Admin-Tab Logs

This commit is contained in:
2026-07-16 00:18:56 +02:00
parent 7e6ea9b010
commit 2b2a2dce2d
11 changed files with 213 additions and 26 deletions

View File

@@ -2,6 +2,7 @@ const express = require('express');
const https = require('https');
const db = require('../../db');
const mqttClient = require('../../mqtt');
const { logPush } = require('../../pushLog');
const { authenticate } = require('../../middleware/auth');
const router = express.Router();
@@ -430,14 +431,15 @@ function formatOfferMessage(offers) {
async function sendKoepiPushover(offers, onlyUserId = null) {
const recipients = onlyUserId
? db.prepare(`
SELECT user_key, app_token FROM pushover_settings
SELECT user_id, user_key, app_token FROM pushover_settings
WHERE user_id = ? AND user_key IS NOT NULL AND app_token IS NOT NULL
`).all(onlyUserId)
: db.prepare(`
SELECT user_key, app_token FROM pushover_settings
SELECT user_id, user_key, app_token FROM pushover_settings
WHERE user_key IS NOT NULL AND app_token IS NOT NULL
`).all();
const message = formatOfferMessage(offers);
const title = '🍺 KöPi Angebote';
for (const r of recipients) {
try {
await fetch('https://api.pushover.net/1/messages.json', {
@@ -446,12 +448,16 @@ async function sendKoepiPushover(offers, onlyUserId = null) {
body: new URLSearchParams({
token: r.app_token,
user: r.user_key,
title: '🍺 KöPi Angebote',
title,
message,
priority: 0,
}),
});
} catch (e) { console.error('KöPi Pushover Fehler:', e.message); }
logPush({ userId: r.user_id, title, message, priority: 0, source: 'koepi' });
} catch (e) {
console.error('KöPi Pushover Fehler:', e.message);
logPush({ userId: r.user_id, title, message, priority: 0, source: 'koepi', success: false });
}
}
}