Sha256: 91826aa027ff04b3632485f2ddec4b1d6868a976d97359b0e298129041d0a124

Contents?: true

Size: 875 Bytes

Versions: 17

Compression:

Stored size: 875 Bytes

Contents

# frozen_string_literal: true

module Decidim
  class DataPortabilityExportJob < ApplicationJob
    queue_as :default

    def perform(user, export_format = ::Decidim::DataPortabilityExporter::DEFAULT_EXPORT_FORMAT)
      filename = "#{SecureRandom.urlsafe_base64}.zip"
      path = Rails.root.join("tmp/#{filename}")
      password = SecureRandom.urlsafe_base64

      generate_zip_file(user, path, password, export_format)
      save_or_upload_file(user, path)

      ExportMailer.data_portability_export(user, filename, password).deliver_later
    end

    private

    def generate_zip_file(user, path, password, export_format)
      DataPortabilityExporter.new(user, path, password, export_format).export
    end

    def save_or_upload_file(user, path)
      user.data_portability_file.attach(io: File.open(path, "rb"), filename: File.basename(path))
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
decidim-core-0.26.8 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.7 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.5 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.4 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.3 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.2 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.1 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.0 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.0.rc2 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.26.0.rc1 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.2 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.1 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.0 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.0.rc4 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.0.rc3 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.0.rc2 app/jobs/decidim/data_portability_export_job.rb
decidim-core-0.25.0.rc1 app/jobs/decidim/data_portability_export_job.rb