diff options
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/concerns/incident_management/usage_data.rb | 2 | ||||
-rw-r--r-- | app/services/event_create_service.rb | 2 | ||||
-rw-r--r-- | app/services/import_csv/base_service.rb | 3 | ||||
-rw-r--r-- | app/services/incident_management/timeline_events/base_service.rb | 2 | ||||
-rw-r--r-- | app/services/issuable/import_csv/base_service.rb | 2 | ||||
-rw-r--r-- | app/services/todo_service.rb | 2 | ||||
-rw-r--r-- | app/services/work_items/import_csv_service.rb | 50 |
7 files changed, 53 insertions, 10 deletions
diff --git a/app/services/concerns/incident_management/usage_data.rb b/app/services/concerns/incident_management/usage_data.rb index 40183085344..775dea9b949 100644 --- a/app/services/concerns/incident_management/usage_data.rb +++ b/app/services/concerns/incident_management/usage_data.rb @@ -13,8 +13,6 @@ module IncidentManagement namespace = target.try(:namespace) project = target.try(:project) - return unless Feature.enabled?(:route_hll_to_snowplow_phase2, target.try(:namespace)) - Gitlab::Tracking.event( self.class.to_s, event, diff --git a/app/services/event_create_service.rb b/app/services/event_create_service.rb index d848f694598..c941febad57 100644 --- a/app/services/event_create_service.rb +++ b/app/services/event_create_service.rb @@ -278,8 +278,6 @@ class EventCreateService end def track_snowplow_event(action:, project:, user:, label:, property:) - return unless Feature.enabled?(:route_hll_to_snowplow_phase2) - Gitlab::Tracking.event( self.class.to_s, action.to_s, diff --git a/app/services/import_csv/base_service.rb b/app/services/import_csv/base_service.rb index feb76425fb4..628c322db13 100644 --- a/app/services/import_csv/base_service.rb +++ b/app/services/import_csv/base_service.rb @@ -46,8 +46,9 @@ module ImportCsv results[:error_lines].push(line_no) end end - rescue ArgumentError, CSV::MalformedCSVError + rescue ArgumentError, CSV::MalformedCSVError => e results[:parse_error] = true + results[:error_lines].push(e.line_number) if e.respond_to?(:line_number) end def with_csv_lines diff --git a/app/services/incident_management/timeline_events/base_service.rb b/app/services/incident_management/timeline_events/base_service.rb index e997d940ed4..75a3811af2d 100644 --- a/app/services/incident_management/timeline_events/base_service.rb +++ b/app/services/incident_management/timeline_events/base_service.rb @@ -29,8 +29,6 @@ module IncidentManagement namespace = project.namespace track_usage_event(event, user.id) - return unless Feature.enabled?(:route_hll_to_snowplow_phase2, namespace) - Gitlab::Tracking.event( self.class.to_s, event, diff --git a/app/services/issuable/import_csv/base_service.rb b/app/services/issuable/import_csv/base_service.rb index 83cf5a67453..9ef9fb76e3c 100644 --- a/app/services/issuable/import_csv/base_service.rb +++ b/app/services/issuable/import_csv/base_service.rb @@ -21,7 +21,7 @@ module Issuable headers.downcase! if headers return if headers && headers.include?('title') && headers.include?('description') - raise CSV::MalformedCSVError + raise CSV::MalformedCSVError.new('Invalid CSV format - missing required headers.', 1) end end end diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb index 42a8aca17d3..2025d438ae7 100644 --- a/app/services/todo_service.rb +++ b/app/services/todo_service.rb @@ -428,8 +428,6 @@ class TodoService event = "incident_management_incident_todo" track_usage_event(event, user.id) - return unless Feature.enabled?(:route_hll_to_snowplow_phase2, namespace) - Gitlab::Tracking.event( self.class.to_s, event, diff --git a/app/services/work_items/import_csv_service.rb b/app/services/work_items/import_csv_service.rb new file mode 100644 index 00000000000..e93905b8ca5 --- /dev/null +++ b/app/services/work_items/import_csv_service.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +module WorkItems + class ImportCsvService < ImportCsv::BaseService + extend ::Gitlab::Utils::Override + + NotAvailableError = StandardError.new('This feature is currently behind a feature flag and it is not available.') + + def execute + raise NotAvailableError if ::Feature.disabled?(:import_export_work_items_csv, project) + + super + end + + def email_results_to_user + # todo as part of https://gitlab.com/gitlab-org/gitlab/-/issues/379153 + end + + private + + def create_object(attributes) + super[:work_item] + end + + def create_object_class + ::WorkItems::CreateService + end + + override :attributes_for + def attributes_for(row) + { + title: row[:title], + work_item_type: WorkItems::Type.default_issue_type + } + end + + override :validate_headers_presence! + def validate_headers_presence!(headers) + headers.downcase! if headers + return if headers && required_headers.all? { |rh| headers.include?(rh) } + + required_headers_message = "Required headers are missing. Required headers are #{required_headers.join(', ')}" + raise CSV::MalformedCSVError.new(required_headers_message, 1) + end + + def required_headers + %w[title].freeze + end + end +end |