示例#1
0
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
示例#2
0
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
示例#3
0
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)