Class: Decidim::Assemblies::OpenDataAssemblySerializer

Inherits:
Exporters::ParticipatorySpaceSerializer
  • Object
show all
Defined in:
app/serializers/decidim/assemblies/open_data_assembly_serializer.rb

Overview

This class serializes an Assembly so it can be exported to CSV for the Open Data feature.

Direct Known Subclasses

AssemblySerializer

Instance Method Summary collapse

Instance Method Details

#serializeObject

Public: Exports a hash with the serialized data for this assembly.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/serializers/decidim/assemblies/open_data_assembly_serializer.rb', line 9

def serialize
  super.merge(
    {
      url: EngineRouter.main_proxy(resource).assembly_url(resource),
      subtitle: resource.subtitle,
      remote_hero_image_url: Decidim::ParticipatoryProcesses::ParticipatoryProcessPresenter.new(resource).hero_image_url,
      remote_banner_image_url: Decidim::Assemblies::AssemblyPresenter.new(resource).banner_image_url,
      announcement: resource.announcement,
      developer_group: resource.developer_group,
      local_area: resource.local_area,
      meta_scope: resource.meta_scope,
      participatory_scope: resource.participatory_scope,
      purpose_of_action: resource.purpose_of_action,
      composition: resource.composition,
      duration: resource.duration,
      participatory_structure: resource.participatory_structure,
      target: resource.target,
      decidim_scope_id: resource.decidim_scope_id,
      area: {
        id: resource.area.try(:id),
        name: resource.area.try(:name) || empty_translatable
      },
      scope: {
        id: resource.scope.try(:id),
        name: resource.scope.try(:name) || empty_translatable
      },
      scopes_enabled: resource.scopes_enabled,
      included_at: resource.included_at,
      closing_date: resource.closing_date,
      created_by: resource.created_by,
      creation_date: resource.creation_date,
      closing_date_reason: resource.closing_date_reason,
      internal_organisation: resource.internal_organisation,
      is_transparent: resource.is_transparent,
      special_features: resource.special_features,
      twitter_handler: resource.twitter_handler,
      instagram_handler: resource.instagram_handler,
      facebook_handler: resource.facebook_handler,
      youtube_handler: resource.youtube_handler,
      github_handler: resource.github_handler,
      created_by_other: resource.created_by_other,
      assembly_type: {
        id: resource.assembly_type.try(:id),
        title: resource.assembly_type.try(:title) || empty_translatable
      }
    }
  )
end