Ejemplo n.º 1
0
def update_update_participant_modal(
    user_id: str,
    user_email: str,
    channel_id: str,
    incident_id: int,
    action: dict,
    db_session=None,
    slack_client=None,
):
    """Pushes an updated view to the update participant modal."""
    trigger_id = action["trigger_id"]
    participant_id = action["actions"][0]["selected_option"]["value"]

    selected_participant = participant_service.get(
        db_session=db_session, participant_id=participant_id
    )
    incident = incident_service.get(db_session=db_session, incident_id=incident_id)

    modal_update_template = build_update_participant_blocks(
        incident=incident, participant=selected_participant
    )

    dispatch_slack_service.update_modal_with_user(
        client=slack_client,
        trigger_id=trigger_id,
        view_id=action["view"]["id"],
        modal=modal_update_template,
    )
Ejemplo n.º 2
0
def update_participant_from_submitted_form(
    user_id: str,
    user_email: str,
    channel_id: str,
    incident_id: int,
    action: dict,
    db_session=None,
    slack_client=None,
):
    """Saves form data."""
    submitted_form = action.get("view")

    parsed_form_data = parse_submitted_form(submitted_form)

    added_reason = parsed_form_data.get(UpdateParticipantBlockFields.reason_added)
    participant_id = int(parsed_form_data.get(UpdateParticipantBlockFields.participant)["value"])
    selected_participant = participant_service.get(
        db_session=db_session, participant_id=participant_id
    )
    participant_service.update(
        db_session=db_session,
        participant=selected_participant,
        participant_in=ParticipantUpdate(added_reason=added_reason),
    )

    dispatch_slack_service.send_ephemeral_message(
        client=slack_client,
        conversation_id=channel_id,
        user_id=user_id,
        text="You have successfully updated the participant.",
    )
Ejemplo n.º 3
0
def update_update_participant_modal(
    user_id: str,
    user_email: str,
    channel_id: str,
    incident_id: int,
    action: dict,
    db_session=None,
    slack_client=None,
):
    """Pushes an updated view to the update participant modal."""
    trigger_id = action["trigger_id"]

    submitted_form = action.get("view")
    parsed_form_data = parse_submitted_form(submitted_form)

    participant_id = parsed_form_data[UpdateParticipantBlockId.participant]["value"]

    selected_participant = participant_service.get(
        db_session=db_session, participant_id=participant_id
    )
    incident = incident_service.get(db_session=db_session, incident_id=incident_id)
    modal_update_template = update_participant(incident=incident, participant=selected_participant)

    update_modal_with_user(
        client=slack_client,
        trigger_id=trigger_id,
        view_id=action["view"]["id"],
        modal=modal_update_template,
    )
Ejemplo n.º 4
0
def add_role(*, db_session, participant_id: int,
             participant_role: ParticipantRoleType) -> ParticipantRole:
    """Adds a role to a participant."""
    participant = participant_service.get(db_session=db_session,
                                          participant_id=participant_id)
    participant_role_in = ParticipantRoleCreate(role=participant_role)
    participant_role = create(db_session=db_session,
                              participant_role_in=participant_role_in)
    participant.participant_roles.append(participant_role)
    db_session.add(participant)
    db_session.commit()
    return participant_role
Ejemplo n.º 5
0
def update_participant_from_submitted_form(action: dict, db_session=None):
    """Saves form data."""
    submitted_form = action.get("view")

    parsed_form_data = parse_submitted_form(submitted_form)

    added_reason = parsed_form_data.get(
        UpdateParticipantBlockFields.reason_added)
    participant_id = int(
        parsed_form_data.get(
            UpdateParticipantBlockFields.participant)["value"])
    selected_participant = participant_service.get(
        db_session=db_session, participant_id=participant_id)
    participant_service.update(
        db_session=db_session,
        participant=selected_participant,
        participant_in=ParticipantUpdate(added_reason=added_reason),
    )
Ejemplo n.º 6
0
def create(*, db_session, monitor_in: MonitorCreate) -> Monitor:
    """Creates a new monitor."""
    incident = incident_service.get(db_session=db_session,
                                    incident_id=monitor_in.incident.id)
    plugin_instance = plugin_service.get_instance(
        db_session=db_session,
        plugin_instance_id=monitor_in.plugin_instance.id)
    creator = participant_service.get(db_session=db_session,
                                      participant_id=monitor_in.creator.id)
    monitor = Monitor(
        **monitor_in.dict(exclude={"plugin_instance", "incident", "creator"}),
        plugin_instance=plugin_instance,
        incident=incident,
        creator=creator,
    )

    db_session.add(monitor)
    db_session.commit()
    return monitor
def test_delete(session, participant):
    from dispatch.participant.service import delete, get

    delete(db_session=session, participant_id=participant.id)
    assert not get(db_session=session, participant_id=participant.id)
def test_get(session, participant):
    from dispatch.participant.service import get

    t_participant = get(db_session=session, participant_id=participant.id)
    assert t_participant.id == participant.id