summaryrefslogtreecommitdiff
path: root/app/graphql/mutations/alert_management/create_alert_issue.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/mutations/alert_management/create_alert_issue.rb')
-rw-r--r--app/graphql/mutations/alert_management/create_alert_issue.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/app/graphql/mutations/alert_management/create_alert_issue.rb b/app/graphql/mutations/alert_management/create_alert_issue.rb
new file mode 100644
index 00000000000..adb048a4479
--- /dev/null
+++ b/app/graphql/mutations/alert_management/create_alert_issue.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+module Mutations
+ module AlertManagement
+ class CreateAlertIssue < Base
+ graphql_name 'CreateAlertIssue'
+
+ def resolve(args)
+ alert = authorized_find!(project_path: args[:project_path], iid: args[:iid])
+ result = create_alert_issue(alert, current_user)
+
+ prepare_response(alert, result)
+ end
+
+ private
+
+ def create_alert_issue(alert, user)
+ ::AlertManagement::CreateAlertIssueService.new(alert, user).execute
+ end
+
+ def prepare_response(alert, result)
+ {
+ alert: alert,
+ issue: result.payload[:issue],
+ errors: Array(result.message)
+ }
+ end
+ end
+ end
+end