From 81f0b666c8e92ef08030987db7570ffa554c87f1 Mon Sep 17 00:00:00 2001 From: Alexander Brandon Coles Date: Sat, 21 Mar 2026 21:16:58 -0400 Subject: [PATCH] Fix Rubocop ABC size in before_perform Extracts failure aggregation into its own method. --- .../boards/sprint_task_board_create_service.rb | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/boards/app/services/boards/sprint_task_board_create_service.rb b/modules/boards/app/services/boards/sprint_task_board_create_service.rb index b4df3b89ecf..6a99b352e52 100644 --- a/modules/boards/app/services/boards/sprint_task_board_create_service.rb +++ b/modules/boards/app/services/boards/sprint_task_board_create_service.rb @@ -35,12 +35,8 @@ module Boards def before_perform(_service_result) create_queries_results = create_queries(params) - failures = create_queries_results.select(&:failure?) - if failures.any? - return ServiceResult.failure.tap do |result| - failures.each { |f| result.add_dependent!(f) } - end - end + failure_result = aggregate_failures(create_queries_results) + return failure_result if failure_result set_attributes(params.merge(query_ids: create_queries_results.map { it.result.id })).tap do |service_result| service_result.result.linked = params[:sprint] if service_result.success? @@ -49,6 +45,15 @@ module Boards private + def aggregate_failures(results) + failures = results.select(&:failure?) + return nil if failures.empty? + + ServiceResult.failure.tap do |result| + failures.each { |f| result.add_dependent!(f) } + end + end + def create_query_params(params, status) default_create_query_params(params).merge( name: query_name(status),