require_relative 'base' class WCC::Media::Message < WCC::Media::Base active_record_shim do endpoint 'messages' filters %w[ on_or_after_date on_or_before_date tag_id speaker_id scripture_book_id series_id title_like legacy_id ].freeze end %w[ date title description series_position topic topics ].each do |att| define_method att do raw[att] end end def speakers (raw['speakers'] || []).map { |val| WCC::Media::Speaker.new(val) } end def tags (raw['tags'] || []).map { |val| WCC::Media::Tag.new(val) } end %w[ scripture_references downloads ].each do |att| define_method att do (raw[att] || []).map { |val| OpenStruct.new(val) } end end def series WCC::Media::Series.new(raw['series']) if raw['series'] end %w[ embeds assets images external_urls transcript sermon_guide _clips _formatted _stats ].each do |att| define_method att do OpenStruct.new(raw[att]) if raw[att] end end end