Make notification rules queryable
This commit is contained in:
@@ -1,12 +1,40 @@
|
||||
from datetime import datetime
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from core.models import NotificationRule
|
||||
|
||||
|
||||
class QueryError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def parse_rule(user, query_params):
|
||||
"""
|
||||
Parse a rule query.
|
||||
"""
|
||||
if "rule" in query_params:
|
||||
try:
|
||||
rule_object = NotificationRule.objects.filter(id=query_params["rule"])
|
||||
except ValidationError:
|
||||
message = "Rule is not a valid UUID"
|
||||
message_class = "danger"
|
||||
return {"message": message, "class": message_class}
|
||||
if not rule_object.exists():
|
||||
message = "Rule does not exist"
|
||||
message_class = "danger"
|
||||
return {"message": message, "class": message_class}
|
||||
rule_object = rule_object.first()
|
||||
if not rule_object.user == user:
|
||||
message = "Rule does not belong to you"
|
||||
message_class = "danger"
|
||||
return {"message": message, "class": message_class}
|
||||
return rule_object
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def parse_size(query_params, sizes):
|
||||
if "size" in query_params:
|
||||
size = query_params["size"]
|
||||
|
||||
@@ -284,7 +284,6 @@ class NotificationRuleData(object):
|
||||
if not isinstance(matches, list):
|
||||
matches = [matches]
|
||||
matches_copy = matches.copy()
|
||||
print("MATHCES COPY: ", matches_copy)
|
||||
match_ts = datetime.utcnow().isoformat()
|
||||
for match_index, _ in enumerate(matches_copy):
|
||||
matches_copy[match_index]["index"] = index
|
||||
|
||||
Reference in New Issue
Block a user