Merge pull request #12 from ualsweb/claude/fix-invalid-notification-type-011CUqVBr2CkSZZZVnAqufVM
Fix notification validation to handle enum objects
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user