diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
commit | 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch) | |
tree | 544930fb309b30317ae9797a9683768705d664c4 /app/services/boards | |
parent | 4b1de649d0168371549608993deac953eb692019 (diff) |
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'app/services/boards')
-rw-r--r-- | app/services/boards/lists/create_service.rb | 28 | ||||
-rw-r--r-- | app/services/boards/lists/generate_service.rb | 6 |
2 files changed, 21 insertions, 13 deletions
diff --git a/app/services/boards/lists/create_service.rb b/app/services/boards/lists/create_service.rb index 9c7a165776e..a21ceee083f 100644 --- a/app/services/boards/lists/create_service.rb +++ b/app/services/boards/lists/create_service.rb @@ -6,17 +6,21 @@ module Boards include Gitlab::Utils::StrongMemoize def execute(board) - List.transaction do - case type - when :backlog - create_backlog(board) - else - target = target(board) - position = next_position(board) - - create_list(board, type, target, position) - end - end + list = case type + when :backlog + create_backlog(board) + else + target = target(board) + position = next_position(board) + + return ServiceResponse.error(message: _('%{board_target} not found') % { board_target: type.to_s.capitalize }) if target.blank? + + create_list(board, type, target, position) + end + + return ServiceResponse.error(message: list.errors.full_messages) unless list.persisted? + + ServiceResponse.success(payload: { list: list }) end private @@ -33,7 +37,7 @@ module Boards def target(board) strong_memoize(:target) do - available_labels.find(params[:label_id]) + available_labels.find_by(id: params[:label_id]) # rubocop: disable CodeReuse/ActiveRecord end end diff --git a/app/services/boards/lists/generate_service.rb b/app/services/boards/lists/generate_service.rb index 4fbf1026019..d74320e92a3 100644 --- a/app/services/boards/lists/generate_service.rb +++ b/app/services/boards/lists/generate_service.rb @@ -7,7 +7,11 @@ module Boards return false unless board.lists.movable.empty? List.transaction do - label_params.each { |params| create_list(board, params) } + label_params.each do |params| + response = create_list(board, params) + + raise ActiveRecord::Rollback unless response.success? + end end true |