def test_create(session, project): from dispatch.individual.service import create from dispatch.individual.models import IndividualContactCreate name = "Joe Smith" title = "Engineer" email = "*****@*****.**" mobile_phone = "111-111-1111" office_phone = "111-111-1111" weblink = "https://www.example.com/" individual_contact_in = IndividualContactCreate( name=name, title=title, email=email, mobile_phone=mobile_phone, office_phone=office_phone, weblink=weblink, project={ "id": project.id, "name": project.name }, ) individual_contact = create(db_session=session, individual_contact_in=individual_contact_in) assert individual_contact
def test_get_or_create(session, individual_contact): from dispatch.individual.service import create, get_by_email from dispatch.individual.models import IndividualContactCreate contact = get_by_email(db_session=session, email=individual_contact.email) if not contact: name = "Joe Smith" title = "Engineer" email = "*****@*****.**" mobile_phone = "111-111-1111" office_phone = "111-111-1111" weblink = "https://www.example.com/" individual_contact_in = IndividualContactCreate( name=name, title=title, email=email, mobile_phone=mobile_phone, office_phone=office_phone, weblink=weblink, ) individual_contact = create( db_session=session, individual_contact_in=individual_contact_in) contact = create(db_session=session, individual_contact_in=individual_contact_in) assert contact
def report_incident_from_submitted_form( user_id: str, user_email: str, channel_id: str, incident_id: int, action: dict, db_session: SessionLocal = None, slack_client=None, ): submitted_form = action.get("view") parsed_form_data = parse_submitted_form(submitted_form) # Send a confirmation to the user blocks = create_incident_reported_confirmation_message( title=parsed_form_data[IncidentBlockId.title], description=parsed_form_data[IncidentBlockId.description], incident_type=parsed_form_data[IncidentBlockId.type]["value"], incident_priority=parsed_form_data[IncidentBlockId.priority]["value"], ) send_ephemeral_message( client=slack_client, conversation_id=channel_id, user_id=user_id, text="", blocks=blocks, ) tags = [] for t in parsed_form_data.get(IncidentBlockId.tags, []): tags.append({"id": t["value"]}) incident_in = IncidentCreate( title=parsed_form_data[IncidentBlockId.title], description=parsed_form_data[IncidentBlockId.description], incident_type={"name": parsed_form_data[IncidentBlockId.type]["value"]}, incident_priority={"name": parsed_form_data[IncidentBlockId.priority]["value"]}, project={"name": parsed_form_data[IncidentBlockId.project]["value"]}, reporter=IndividualContactCreate(email=user_email), tags=tags, ) # Create the incident incident = incident_service.create(db_session=db_session, incident_in=incident_in) incident_flows.incident_create_flow(incident_id=incident.id, db_session=db_session)