Ran for less than 10 seconds, finished .
# frozen_string_literal: true
class Maintenance::ExportCustomFieldsTask < MaintenanceTasks::Task
include ArrayHelper
no_collection
attribute :emails, :string
attribute :brand_name, :string
attribute :mid_back_office_name, :string
attribute :mbo_country_code, :string
validates :emails, presence: true, fcm_email_format: true
def process
CsvGenerator.new.call do |file|
CustomFields::RawDataExtractor.new(
brand_name: brand_name,
mid_back_office_name: mid_back_office_name,
mbo_country_code: mbo_country_code
).call do |line|
file.puts(line)
end
file.rewind
blob = upload_to_storage(file)
send_email_with_url(blob)
end
end
private
def upload_to_storage(file)
ActiveStorage::Blob.create_and_upload!(
io: file,
filename: "custom_fields_export_#{Time.zone.now.strftime('%Y%m%d_%H%M%S')}.csv",
content_type: 'text/csv'
)
end
def send_email_with_url(blob)
file_url = Rails.application.routes.url_helpers.rails_blob_url(
blob,
host: application_host,
protocol: 'https'
)
ReportingFieldCsvMailer.send_url(
recipients: emails_array(emails),
file_url: file_url
).deliver_now
end
def application_host
ENV.fetch('VIRTUAL_HOST').split(',').first.strip
end
end
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
protas
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
protas
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
travelogix
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
travelogix
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
travelogix, protas
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
travelogix, protas
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
protas,travelogix
Processed 1 out of 1 item (100%).
Ran for less than 5 seconds, finished .
[FILTERED]
travelogix,protas
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 1 out of 1 item (100%).
Ran for less than 10 seconds, finished .
[FILTERED]
Processed 0 out of 1 item (0%).
Ran for less than 5 seconds until an error happened .
Encoding::UndefinedConversionError
"\x83" to UTF-8 in conversion from Windows-1250 to UTF-8
app/services/encoding_normalizer.rb:26:in 'String#encode'
app/services/encoding_normalizer.rb:26:in 'block in EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:23:in 'Array#each'
app/services/encoding_normalizer.rb:23:in 'EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:17:in 'EncodingNormalizer#normalize'
app/services/custom_fields/raw_data_extractor.rb:16:in 'block in CustomFields::RawDataExtractor#call'
app/services/custom_fields/raw_data_extractor.rb:14:in 'CustomFields::RawDataExtractor#call'
app/tasks/maintenance/export_custom_fields_task.rb:20:in 'Maintenance::ExportCustomFieldsTask#process'
[FILTERED]
protas
Processed 0 out of 1 item (0%).
Ran for less than 5 seconds until an error happened .
Encoding::UndefinedConversionError
"\x83" to UTF-8 in conversion from Windows-1250 to UTF-8
app/services/encoding_normalizer.rb:26:in 'String#encode'
app/services/encoding_normalizer.rb:26:in 'block in EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:23:in 'Array#each'
app/services/encoding_normalizer.rb:23:in 'EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:17:in 'EncodingNormalizer#normalize'
app/services/custom_fields/raw_data_extractor.rb:16:in 'block in CustomFields::RawDataExtractor#call'
app/services/custom_fields/raw_data_extractor.rb:14:in 'CustomFields::RawDataExtractor#call'
app/tasks/maintenance/export_custom_fields_task.rb:20:in 'Maintenance::ExportCustomFieldsTask#process'
[FILTERED]
protas
Processed 0 out of 1 item (0%).
Ran for less than 5 seconds until an error happened .
Encoding::UndefinedConversionError
"\x83" to UTF-8 in conversion from Windows-1250 to UTF-8
app/services/encoding_normalizer.rb:26:in 'String#encode'
app/services/encoding_normalizer.rb:26:in 'block in EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:23:in 'Array#each'
app/services/encoding_normalizer.rb:23:in 'EncodingNormalizer#safe_encode'
app/services/encoding_normalizer.rb:17:in 'EncodingNormalizer#normalize'
app/services/custom_fields/raw_data_extractor.rb:16:in 'block in CustomFields::RawDataExtractor#call'
app/services/custom_fields/raw_data_extractor.rb:14:in 'CustomFields::RawDataExtractor#call'
app/tasks/maintenance/export_custom_fields_task.rb:20:in 'Maintenance::ExportCustomFieldsTask#process'
[FILTERED]
protas