debian-mirror-gitlab/app/graphql/mutations/alert_management/update_alert_status.rb

38 lines
937 B
Ruby
Raw Normal View History

2020-05-24 23:13:21 +05:30
# frozen_string_literal: true
module Mutations
module AlertManagement
class UpdateAlertStatus < Base
graphql_name 'UpdateAlertStatus'
argument :status, Types::AlertManagement::StatusEnum,
required: true,
2021-03-08 18:12:59 +05:30
description: 'The status to set the alert.'
2020-05-24 23:13:21 +05:30
2021-01-29 00:20:46 +05:30
def resolve(project_path:, iid:, status:)
alert = authorized_find!(project_path: project_path, iid: iid)
result = update_status(alert, status)
2020-05-24 23:13:21 +05:30
2020-11-24 15:15:51 +05:30
track_usage_event(:incident_management_alert_status_changed, current_user.id)
2020-05-24 23:13:21 +05:30
prepare_response(result)
end
private
def update_status(alert, status)
2020-07-28 23:09:34 +05:30
::AlertManagement::Alerts::UpdateService
.new(alert, current_user, status: status)
2020-05-24 23:13:21 +05:30
.execute
end
def prepare_response(result)
{
alert: result.payload[:alert],
2020-06-23 00:09:42 +05:30
errors: result.errors
2020-05-24 23:13:21 +05:30
}
end
end
end
end