diff options
Diffstat (limited to 'app/services/issuable_base_service.rb')
-rw-r--r-- | app/services/issuable_base_service.rb | 19 |
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 |