blob: 21566c7d66f3610e2fc3a4186c688da0bb6baad4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# frozen_string_literal: true
module Mutations
module AlertManagement
class UpdateAlertStatus < Base
graphql_name 'UpdateAlertStatus'
argument :status, Types::AlertManagement::StatusEnum,
required: true,
description: 'Status to set the alert.'
def resolve(project_path:, iid:, status:)
alert = authorized_find!(project_path: project_path, iid: iid)
result = update_status(alert, status)
track_usage_event(:incident_management_alert_status_changed, current_user.id)
prepare_response(result)
end
private
def update_status(alert, status)
::AlertManagement::Alerts::UpdateService
.new(alert, current_user, status: status)
.execute
end
def prepare_response(result)
{
alert: result.payload[:alert],
errors: result.errors
}
end
end
end
end
|