class CreateAddressesCsvJob < ApplicationJob queue_as :default BYTE_ORDER_MARK = "\uFEFF".freeze # Required to ensure Excel always reads CSV as UTF-8 def perform(organisation, log_type) csv_service = Csv::MissingAddressesCsvService.new(organisation, []) case log_type when "lettings" csv_string = csv_service.create_lettings_addresses_csv filename = "#{['lettings-logs-addresses', organisation.name, Time.zone.now].compact.join('-')}.csv" when "sales" csv_string = csv_service.create_sales_addresses_csv filename = "#{['sales-logs-addresses', organisation.name, Time.zone.now].compact.join('-')}.csv" end storage_service = Storage::S3Service.new(Configuration::EnvConfigurationService.new, ENV["BULK_UPLOAD_BUCKET"]) storage_service.write_file(filename, BYTE_ORDER_MARK + csv_string) Rails.logger.info("Created addresses file: #{filename}") end end