class VzaarApi::Strategy::Video::Create

Attributes

attrs[R]
video_class[R]

Public Class Methods

new(attrs, video_class) click to toggle source
# File lib/vzaar_api/strategy/video/create.rb, line 8
def initialize(attrs, video_class)
  @attrs = attrs
  @video_class = video_class
end

Public Instance Methods

execute() click to toggle source
# File lib/vzaar_api/strategy/video/create.rb, line 13
def execute
  case
  when attrs.has_key?(:guid)
    create_from_guid
  when attrs.has_key?(:path)
    create_from_path
  when attrs.has_key?(:url)
    create_from_url
  else
    raise Error.new('Invalid parameters: Expected one of :guid, :path, :url')
  end
end

Private Instance Methods

create_from_guid() click to toggle source
# File lib/vzaar_api/strategy/video/create.rb, line 28
def create_from_guid
  url = Lib::Api.resource_url video_class::ENDPOINT
  video_class.new Lib::Api.new.post(url, attrs).data
end
create_from_path() click to toggle source
# File lib/vzaar_api/strategy/video/create.rb, line 33
def create_from_path
  signature = Signature::Factory.create(attrs)
  upload_attrs = Upload::S3.new(attrs, signature).execute
  video_class.create upload_attrs
end
create_from_url() click to toggle source
# File lib/vzaar_api/strategy/video/create.rb, line 39
def create_from_url
  LinkUpload.create(attrs.merge({ uploader: UPLOADER }))
end