in src/dispatch/case/messaging.py [0:0]
def send_case_created_notifications(case: Case, db_session: Session):
"""Sends case created notifications."""
notification_template = CASE_NOTIFICATION.copy()
if case.status != CaseStatus.closed:
if case.project.allow_self_join:
notification_template.insert(0, CASE_NAME_WITH_ENGAGEMENT)
else:
notification_template.insert(0, CASE_NAME_WITH_ENGAGEMENT_NO_SELF_JOIN)
else:
notification_template.insert(0, CASE_NAME)
case_description = (
case.description if len(case.description) <= 500 else f"{case.description[:500]}..."
)
notification_kwargs = {
"name": case.name,
"title": case.title,
"description": case_description,
"visibility": case.visibility,
"status": case.status,
"type": case.case_type.name,
"type_description": case.case_type.description,
"severity": case.case_severity.name,
"severity_description": case.case_severity.description,
"priority": case.case_priority.name,
"priority_description": case.case_priority.description,
"reporter_fullname": case.reporter.individual.name,
"reporter_team": case.reporter.team,
"reporter_weblink": case.reporter.individual.weblink,
"assignee_fullname": case.assignee.individual.name,
"assignee_team": case.assignee.team,
"assignee_weblink": case.assignee.individual.weblink,
"document_weblink": resolve_attr(case, "case_document.weblink"),
"storage_weblink": resolve_attr(case, "storage.weblink"),
"ticket_weblink": resolve_attr(case, "ticket.weblink"),
"contact_fullname": case.assignee.individual.name,
"contact_weblink": case.assignee.individual.weblink,
"case_id": case.id,
"organization_slug": case.project.organization.slug,
}
notification_params = {
"text": "Case Notification",
"type": MessageType.case_notification,
"template": notification_template,
"kwargs": notification_kwargs,
}
notification_service.filter_and_send(
db_session=db_session,
project_id=case.project.id,
class_instance=case,
notification_params=notification_params,
)
event_service.log_case_event(
db_session=db_session,
source="Dispatch Core App",
description="Case notifications sent",
case_id=case.id,
)
log.debug("Case created notifications sent.")