summaryrefslogtreecommitdiff
path: root/app/services/issuable_base_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/issuable_base_service.rb')
-rw-r--r--app/services/issuable_base_service.rb19
1 files changed, 12 insertions, 7 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 02c1f078a40..8d65865e7da 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -57,6 +57,7 @@ class IssuableBaseService < ::BaseProjectService
filter_assignees(issuable)
filter_milestone
filter_labels
+ filter_severity(issuable)
end
def filter_assignees(issuable)
@@ -135,6 +136,16 @@ class IssuableBaseService < ::BaseProjectService
@labels_service ||= ::Labels::AvailableLabelsService.new(current_user, parent, params)
end
+ def filter_severity(issuable)
+ severity = params.delete(:severity)
+ return unless severity && issuable.supports_severity?
+
+ severity = IssuableSeverity::DEFAULT unless IssuableSeverity.severities.key?(severity)
+ return if severity == issuable.severity
+
+ params[:issuable_severity_attributes] = { severity: severity }
+ end
+
def process_label_ids(attributes, existing_label_ids: nil, extra_label_ids: [])
label_ids = attributes.delete(:label_ids)
add_label_ids = attributes.delete(:add_label_ids)
@@ -352,7 +363,6 @@ class IssuableBaseService < ::BaseProjectService
def change_additional_attributes(issuable)
change_state(issuable)
- change_severity(issuable)
change_subscription(issuable)
change_todo(issuable)
toggle_award(issuable)
@@ -371,12 +381,6 @@ class IssuableBaseService < ::BaseProjectService
end
end
- def change_severity(issuable)
- if severity = params.delete(:severity)
- ::IncidentManagement::Incidents::UpdateSeverityService.new(issuable, current_user, severity).execute
- end
- end
-
def change_subscription(issuable)
case params.delete(:subscription_event)
when 'subscribe'
@@ -443,6 +447,7 @@ class IssuableBaseService < ::BaseProjectService
associations[:time_change] = issuable.time_change if issuable.respond_to?(:time_change)
associations[:description] = issuable.description
associations[:reviewers] = issuable.reviewers.to_a if issuable.allows_reviewers?
+ associations[:severity] = issuable.severity if issuable.supports_severity?
associations
end