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