aktueller stand
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user