diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
commit | 71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch) | |
tree | 6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /app/services/work_items | |
parent | a7253423e3403b8c08f8a161e5937e1488f5f407 (diff) |
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'app/services/work_items')
7 files changed, 43 insertions, 9 deletions
diff --git a/app/services/work_items/create_and_link_service.rb b/app/services/work_items/create_and_link_service.rb index 351ebc14564..ae09e44b952 100644 --- a/app/services/work_items/create_and_link_service.rb +++ b/app/services/work_items/create_and_link_service.rb @@ -16,7 +16,7 @@ module WorkItems def execute create_result = CreateService.new( - project: @project, + container: @project, current_user: @current_user, params: @params.merge(title: @params[:title].strip).reverse_merge(confidential: confidential_parent), spam_params: @spam_params diff --git a/app/services/work_items/create_service.rb b/app/services/work_items/create_service.rb index c89ebc75b80..eff2132039f 100644 --- a/app/services/work_items/create_service.rb +++ b/app/services/work_items/create_service.rb @@ -4,13 +4,13 @@ module WorkItems class CreateService < Issues::CreateService include WidgetableService - def initialize(project:, spam_params:, current_user: nil, params: {}, widget_params: {}) + def initialize(container:, spam_params:, current_user: nil, params: {}, widget_params: {}) super( - project: project, + container: container, current_user: current_user, params: params, spam_params: spam_params, - build_service: ::WorkItems::BuildService.new(project: project, current_user: current_user, params: params) + build_service: ::WorkItems::BuildService.new(container: container, current_user: current_user, params: params) ) @widget_params = widget_params end diff --git a/app/services/work_items/delete_task_service.rb b/app/services/work_items/delete_task_service.rb index 2a82a993b71..3d66716543a 100644 --- a/app/services/work_items/delete_task_service.rb +++ b/app/services/work_items/delete_task_service.rb @@ -25,7 +25,7 @@ module WorkItems break ::ServiceResponse.error(message: replacement_result.errors, http_status: 422) if replacement_result.error? delete_result = ::WorkItems::DeleteService.new( - project: @task.project, + container: @task.project, current_user: @current_user ).execute(@task) diff --git a/app/services/work_items/export_csv_service.rb b/app/services/work_items/export_csv_service.rb new file mode 100644 index 00000000000..9bef75e2c40 --- /dev/null +++ b/app/services/work_items/export_csv_service.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module WorkItems + class ExportCsvService < ExportCsv::BaseService + NotAvailableError = StandardError.new('This feature is currently behind a feature flag and it is not available.') + + def csv_data + raise NotAvailableError unless Feature.enabled?(:import_export_work_items_csv, resource_parent) + + super + end + + def email(mail_to_user) + # TODO - will be implemented as part of https://gitlab.com/gitlab-org/gitlab/-/issues/379082 + end + + private + + def associations_to_preload + [:work_item_type, :author] + end + + def header_to_value_hash + { + 'Id' => 'iid', + 'Title' => 'title', + 'Type' => ->(work_item) { work_item.work_item_type.name }, + 'Author' => 'author_name', + 'Author Username' => ->(work_item) { work_item.author.username }, + 'Created At (UTC)' => ->(work_item) { work_item.created_at.to_s(:csv) } + } + end + end +end diff --git a/app/services/work_items/task_list_reference_removal_service.rb b/app/services/work_items/task_list_reference_removal_service.rb index 9152580bef0..843b03906ac 100644 --- a/app/services/work_items/task_list_reference_removal_service.rb +++ b/app/services/work_items/task_list_reference_removal_service.rb @@ -39,7 +39,7 @@ module WorkItems end ::WorkItems::UpdateService.new( - project: @work_item.project, + container: @work_item.project, current_user: @current_user, params: { description: source_lines.join("\n"), lock_version: @lock_version } ).execute(@work_item) diff --git a/app/services/work_items/task_list_reference_replacement_service.rb b/app/services/work_items/task_list_reference_replacement_service.rb index b098d67561b..d81576909d9 100644 --- a/app/services/work_items/task_list_reference_replacement_service.rb +++ b/app/services/work_items/task_list_reference_replacement_service.rb @@ -34,7 +34,7 @@ module WorkItems remove_additional_lines!(source_lines) ::WorkItems::UpdateService.new( - project: @work_item.project, + container: @work_item.project, current_user: @current_user, params: { description: source_lines.join("\n"), lock_version: @lock_version } ).execute(@work_item) diff --git a/app/services/work_items/update_service.rb b/app/services/work_items/update_service.rb index 1351445f6f3..d4acadbc851 100644 --- a/app/services/work_items/update_service.rb +++ b/app/services/work_items/update_service.rb @@ -4,10 +4,10 @@ module WorkItems class UpdateService < ::Issues::UpdateService include WidgetableService - def initialize(project:, current_user: nil, params: {}, spam_params: nil, widget_params: {}) + def initialize(container:, current_user: nil, params: {}, spam_params: nil, widget_params: {}) params[:widget_params] = true if widget_params.present? - super(project: project, current_user: current_user, params: params, spam_params: nil) + super(container: container, current_user: current_user, params: params, spam_params: spam_params) @widget_params = widget_params end |