fix: support PascalCase properties in Ombi webhooks (#42)

This commit is contained in:
2026-05-23 20:57:55 +01:00
parent d1db3118f0
commit 86c67bcf29
3 changed files with 43 additions and 11 deletions
+7 -4
View File
@@ -717,9 +717,12 @@ router.post('/ombi', webhookLimiter, (req, res) => {
return res.status(401).json({ error: 'Unauthorized' });
}
// Ombi uses notificationType instead of eventType
const { notificationType, requestId, requestedUser, applicationUrl } = req.body;
const eventType = notificationType || req.body.eventType;
// Ombi uses notificationType instead of eventType. Support PascalCase for .NET apps
const notificationType = req.body.notificationType || req.body.NotificationType;
const requestId = req.body.requestId || req.body.RequestId;
const applicationUrl = req.body.applicationUrl || req.body.ApplicationUrl;
const eventType = notificationType || req.body.eventType || req.body.EventType;
// Extract username from requestedUser (handles both object and string formats)
const username = extractRequestedUser(req.body);
@@ -732,7 +735,7 @@ router.post('/ombi', webhookLimiter, (req, res) => {
// Use applicationUrl as instance identifier for replay protection
const instanceName = applicationUrl || 'ombi';
// Use requestId + eventType + current time as replay key
const eventDate = req.body.requestedDate || new Date().toISOString();
const eventDate = req.body.requestedDate || req.body.RequestedDate || new Date().toISOString();
if (isReplay(eventType, instanceName, `${requestId}-${eventDate}`)) {
logToFile(`[Webhook] Ombi duplicate event ignored: ${eventType} requestId=${requestId}`);