Merge pull request #12 from ualsweb/claude/fix-invalid-notification-type-011CUqVBr2CkSZZZVnAqufVM

Fix notification validation to handle enum objects
This commit is contained in:
ualsweb
2025-11-05 22:59:25 +01:00
committed by GitHub

View File

@@ -237,20 +237,26 @@ class NotificationBaseRepository(BaseRepository):
# Validate priority if present # Validate priority if present
if "priority" in data and data["priority"]: if "priority" in data and data["priority"]:
from enum import Enum
priority_value = data["priority"].value if isinstance(data["priority"], Enum) else data["priority"]
valid_priorities = ["low", "normal", "high", "urgent"] valid_priorities = ["low", "normal", "high", "urgent"]
if data["priority"] not in valid_priorities: if priority_value not in valid_priorities:
errors.append(f"Invalid priority. Must be one of: {valid_priorities}") errors.append(f"Invalid priority. Must be one of: {valid_priorities}")
# Validate notification type if present # Validate notification type if present
if "type" in data and data["type"]: if "type" in data and data["type"]:
from enum import Enum
type_value = data["type"].value if isinstance(data["type"], Enum) else data["type"]
valid_types = ["email", "whatsapp", "push", "sms"] valid_types = ["email", "whatsapp", "push", "sms"]
if data["type"] not in valid_types: if type_value not in valid_types:
errors.append(f"Invalid notification type. Must be one of: {valid_types}") errors.append(f"Invalid notification type. Must be one of: {valid_types}")
# Validate status if present # Validate status if present
if "status" in data and data["status"]: if "status" in data and data["status"]:
from enum import Enum
status_value = data["status"].value if isinstance(data["status"], Enum) else data["status"]
valid_statuses = ["pending", "sent", "delivered", "failed", "cancelled"] valid_statuses = ["pending", "sent", "delivered", "failed", "cancelled"]
if data["status"] not in valid_statuses: if status_value not in valid_statuses:
errors.append(f"Invalid status. Must be one of: {valid_statuses}") errors.append(f"Invalid status. Must be one of: {valid_statuses}")
return { return {