aktueller stand

This commit is contained in:
2026-02-01 17:47:54 +01:00
parent 1b5d5e2ed3
commit 3f7bf88312
3 changed files with 69 additions and 1 deletions

View File

@@ -1,5 +1,22 @@
const foodsharingClient = require('./foodsharingClient');
const sessionStore = require('./sessionStore');
const notificationService = require('./notificationService');
const ADMIN_SESSION_ERROR_COOLDOWN_MS = 6 * 60 * 60 * 1000;
const adminSessionErrorCooldowns = new Map();
function shouldNotifyAdminSessionError(key) {
if (!key) {
return false;
}
const now = Date.now();
const lastNotified = adminSessionErrorCooldowns.get(key) || 0;
if (now - lastNotified < ADMIN_SESSION_ERROR_COOLDOWN_MS) {
return false;
}
adminSessionErrorCooldowns.set(key, now);
return true;
}
function isUnauthorizedError(error) {
const status = error?.response?.status;
@@ -50,6 +67,22 @@ async function refreshSession(session, { label } = {}) {
`[SESSION] Session ${session?.id || 'unbekannt'} konnte nicht erneuert werden${label ? ` (${label})` : ''}:`,
error.message
);
const profileId = session?.profile?.id ? String(session.profile.id) : null;
const notifyKey = profileId || session?.id || null;
if (shouldNotifyAdminSessionError(notifyKey)) {
try {
await notificationService.sendAdminSessionErrorNotification({
profileId,
profileEmail: session?.credentials?.email || session?.profile?.email,
profileName: session?.profile?.name,
sessionId: session?.id,
error: error?.message,
label
});
} catch (notifyError) {
console.error('[NOTIFY] Admin-Session-Fehler konnte nicht gemeldet werden:', notifyError.message);
}
}
return false;
}
}