class BrightcoveService::Ingest
Attributes
params[R]
result[R]
Public Class Methods
new(params)
click to toggle source
# File lib/brightcove_service/ingest.rb, line 9 def initialize(params) @params = params.to_h end
Public Instance Methods
call()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 13 def call valid? && ingest_video end
Private Instance Methods
audio_lang()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 51 def audio_lang params[:audio_tracks].collect do |_, tracks| { language: tracks['lang'] } end end
audio_tracks()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 67 def audio_tracks params[:audio_tracks].collect do |_, tracks| { url: tracks['url'], language: tracks['lang'], variant: 'descriptive' } end end
ingest_params()
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/brightcove_service/ingest.rb, line 34 def ingest_params @ingest_params = { master: master_record } @ingest_params[:text_tracks] = text_tracks if params[:text_tracks] @ingest_params[:audio_tracks] = { masters: audio_tracks } if params[:audio_tracks] @ingest_params[:poster] = { url: params[:poster_url] } if params[:poster_url] @ingest_params[:thumbnail] = { url: params[:thumbnail_url] } if params[:thumbnail_url] @ingest_params end
ingest_video()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 20 def ingest_video @result = BrightcoveService::Api.instance.ingest_video_and_assets(params[:video_id], ingest_params.to_json) rescue StandardError => e add_error(e) end
master_record()
click to toggle source
rubocop:enable Metrics/AbcSize
# File lib/brightcove_service/ingest.rb, line 44 def master_record rec = { url: params[:master_url] } return rec if params[:audio_tracks].blank? rec[:audio_tracks] = audio_lang.uniq rec end
text_tracks()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 57 def text_tracks params[:text_tracks].collect do |_, tracks| { url: tracks['url'], srclang: tracks['lang'], kind: 'subtitles' } end end
validate_params()
click to toggle source
# File lib/brightcove_service/ingest.rb, line 27 def validate_params return true if params[:video_id].present? && params[:master_url].present? errors.add(:base, 'invalid params, missing video_id or master_url') @result = { error: 'invalid params' } end