Class: Decidim::DataPortabilityExportJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/decidim/data_portability_export_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(user, format) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/decidim/data_portability_export_job.rb', line 7

def perform(user, format)
  objects = Decidim::DataPortabilitySerializers.data_entities
  export_data = []
  export_images = []

  objects.each do |object|
    klass = Object.const_get(object)
    export_data << [klass.model_name.name.parameterize.pluralize, Decidim::Exporters.find_exporter(format).new(klass.user_collection(user), klass.export_serializer).export]
    export_images << [klass.model_name.name.parameterize.pluralize, klass.data_portability_images(user).flatten] unless klass.data_portability_images(user).nil?
  end

  ExportMailer.data_portability_export(user, export_data, export_images).deliver_now
end