debian-mirror-gitlab/app/graphql/mutations/alert_management/update_alert_status.rb
2020-05-24 23:13:21 +05:30

35 lines
865 B
Ruby

# frozen_string_literal: true
module Mutations
module AlertManagement
class UpdateAlertStatus < Base
graphql_name 'UpdateAlertStatus'
argument :status, Types::AlertManagement::StatusEnum,
required: true,
description: 'The status to set the alert'
def resolve(args)
alert = authorized_find!(project_path: args[:project_path], iid: args[:iid])
result = update_status(alert, args[:status])
prepare_response(result)
end
private
def update_status(alert, status)
::AlertManagement::UpdateAlertStatusService
.new(alert, current_user, status)
.execute
end
def prepare_response(result)
{
alert: result.payload[:alert],
errors: result.error? ? [result.message] : []
}
end
end
end
end