Class: Decidim::Meetings::SchemaOrgEventMeetingSerializer

Inherits:
Exporters::Serializer
  • Object
show all
Includes:
ActionView::Helpers::UrlHelper, SanitizeHelper, TranslationsHelper
Defined in:
lib/decidim/meetings/schema_org_event_meeting_serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(meeting) ⇒ SchemaOrgEventMeetingSerializer

Public: Initializes the serializer with a meeting.



11
12
13
# File 'lib/decidim/meetings/schema_org_event_meeting_serializer.rb', line 11

def initialize(meeting)
  @meeting = meeting
end

Instance Method Details

#serializeObject

Serializes a meeting for the Schema.org Event type



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/decidim/meetings/schema_org_event_meeting_serializer.rb', line 19

def serialize
  attributes = {
    "@context": "https://schema.org",
    "@type": "Event",
    name: decidim_escape_translated(meeting.title),
    description: decidim_escape_translated(meeting.description),
    startDate: meeting.start_time.iso8601,
    endDate: meeting.end_time.iso8601,
    organizer:,
    eventAttendanceMode: event_attendance_mode,
    eventStatus: "https://schema.org/EventScheduled",
    location:
  }

  attributes = attributes.merge(image:) if meeting.photos.any?
  attributes
end