lib/wcc/media/message.rb in wcc-media-client-0.1.1 vs lib/wcc/media/message.rb in wcc-media-client-0.2.0

- old
+ new

@@ -1,68 +1,69 @@ -require_relative 'cacheable' +require_relative 'base' -module WCC - module Media - class Message - include WCC::Media::Cacheable +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 - attr_reader :raw, :headers + def id + raw['id']&.to_s + end - def initialize(raw, headers = {}) - @raw = raw - @headers = headers - end + def legacy_id + raw['legacy_id']&.to_s + end - def id - raw['id']&.to_s - end + %w[ + date + title + description + series_position + ].each do |att| + define_method att do + raw[att] + end + end - def legacy_id - raw['legacy_id']&.to_s - end + def speakers + (raw['speakers'] || []).map { |val| WCC::Media::Speaker.new(val) } + end - %w[ - date - title - description - series_position - ].each do |att| - define_method att do - raw[att] - end - end + def tags + (raw['tags'] || []).map { |val| WCC::Media::Tag.new(val) } + end - def speakers - (raw['speakers'] || []).map { |val| Speaker.new(val) } - end + %w[ + scripture_references + downloads + ].each do |att| + define_method att do + (raw[att] || []).map { |val| OpenStruct.new(val) } + end + end - def tags - (raw['tags'] || []).map { |val| Tag.new(val) } - end + def series + WCC::Media::Series.new(raw['series']) if raw['series'] + end - %w[ - scripture_references - downloads - ].each do |att| - define_method att do - (raw[att] || []).map { |val| OpenStruct.new(val) } - end - end - - def series - Series.new(raw['series']) if raw['series'] - end - - %w[ - embeds - assets - images - external_urls - transcript - ].each do |att| - define_method att do - OpenStruct.new(raw[att]) if raw[att] - end - end + %w[ + embeds + assets + images + external_urls + transcript + ].each do |att| + define_method att do + OpenStruct.new(raw[att]) if raw[att] end end end \ No newline at end of file