Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers/issuable_export_csv_worker.rb')
-rw-r--r--app/workers/issuable_export_csv_worker.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/app/workers/issuable_export_csv_worker.rb b/app/workers/issuable_export_csv_worker.rb
index 1c5fab8c4c0..d5e3a86eac1 100644
--- a/app/workers/issuable_export_csv_worker.rb
+++ b/app/workers/issuable_export_csv_worker.rb
@@ -25,7 +25,13 @@ class IssuableExportCsvWorker # rubocop:disable Scalability/IdempotentWorker
def export_service(type, user, project, params)
issuable_classes = issuable_classes_for(type.to_sym)
issuables = issuable_classes[:finder].new(user, parse_params(params, project.id, type)).execute
- issuable_classes[:service].new(issuables, project)
+
+ if type.to_sym == :issue # issues do not support field selection for export
+ issuable_classes[:service].new(issuables, project, user)
+ else
+ fields = params.with_indifferent_access.delete(:selected_fields) || []
+ issuable_classes[:service].new(issuables, project, fields)
+ end
end
def issuable_classes_for(type)
@@ -34,6 +40,8 @@ class IssuableExportCsvWorker # rubocop:disable Scalability/IdempotentWorker
{ finder: IssuesFinder, service: Issues::ExportCsvService }
when :merge_request
{ finder: MergeRequestsFinder, service: MergeRequests::ExportCsvService }
+ when :work_item
+ { finder: WorkItems::WorkItemsFinder, service: WorkItems::ExportCsvService }
else
raise ArgumentError, type_error_message(type)
end
@@ -47,7 +55,13 @@ class IssuableExportCsvWorker # rubocop:disable Scalability/IdempotentWorker
end
def type_error_message(type)
- "Type parameter must be :issue or :merge_request, it was #{type}"
+ types_sentence = allowed_types.to_sentence(last_word_connector: ' or ')
+
+ "Type parameter must be #{types_sentence}, it was #{type}"
+ end
+
+ def allowed_types
+ %w[:issue :merge_request :work_item]
end
end