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, )
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.", )
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, )
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
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), )
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