class S3MediaServerApi::Media::CommonMediaApi

Parent module for all media api, implements common methods for all media files To use methods from this module new module must be inherited from this module and media_type method with existing media type must be overwritten

Public Class Methods

create(uuid) click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 37
def create(uuid)
  params = {}
  case media_type
  when 'video'
    params = {uuid: uuid}
  when 'collection'
    params = {owner_uuid: uuid}
  else
    params = { aws_file_uuid: uuid }
  end
  return empty_object unless uuid

  response = AsynkRequest.sync_request(base_path, :create, params)
  raise CreationError.message_from_asynk_response(response) unless response.success?
  self.new(response)
end
create_from_path(path) click to toggle source

creates media file parameters: path - file path in file system

returns: response with created AwsFile information

# File lib/s3_media_server_api/media/common_media_api.rb, line 59
def create_from_path(path)
  aws_file = S3MediaServerApi::Config.mocked ? Mocked::Uploader.upload(path) : Uploader.upload(path)
  uuid = aws_file.uuid
  create(uuid)
end
custom_async_request(action, params) click to toggle source

this method should be used to send custom asynchronous request to s3_media_server. For example, to cut audio file parameters: action - method that should be called

params - parameters for specified method

Example:

custom_async_request (:cut, 'image')
# File lib/s3_media_server_api/media/common_media_api.rb, line 104
def custom_async_request(action, params)
  AsynkRequest.async_request(base_path, action, params)
end
custom_sync_request(action, params) click to toggle source

this method should be used to send custom synchronous request to s3_media_server. For example, to copy image file parameters: action - method that should be called

params - parameters for specified method

Example:

custom_sync_request (:copy, 'image')
# File lib/s3_media_server_api/media/common_media_api.rb, line 93
def custom_sync_request(action, params)
  AsynkRequest.sync_request(base_path, action, params)
end
destroy(uuid) click to toggle source

destroys media file parameters: uuid - uuid of file

# File lib/s3_media_server_api/media/common_media_api.rb, line 68
def destroy(uuid)
  return unless uuid
  AsynkRequest.async_request(base_path, :destroy, uuid: uuid)
end
new(response) click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 12
def initialize(response)
  @params = response[:data].nil? ? {} : response[:data]
end
resolve(uuid) click to toggle source

fetches media file parameters: uuid - uuid of file

returns: response with file information

# File lib/s3_media_server_api/media/common_media_api.rb, line 78
def resolve(uuid)
  return empty_object unless uuid
  cache_key = "#{media_type}/#{uuid}"
  Config.cache_class.fetch(cache_key) do
    self.new(AsynkRequest.sync_request(base_path, :resolve, uuid: uuid))
  end
end

Private Class Methods

base_path() click to toggle source

base path of media consumers on s3_media_server

# File lib/s3_media_server_api/media/common_media_api.rb, line 119
def base_path; "media.#{media_type}"; end
empty_object() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 109
def empty_object
  self.new(data: nil)
end
media_type() click to toggle source

specifies media type which methods will be called

# File lib/s3_media_server_api/media/common_media_api.rb, line 115
def media_type; end

Public Instance Methods

as_hash() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 28
def as_hash
  @params
end
exist?() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 32
def exist?
  !@params.empty?
end
name() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 20
def name
  @params[:name]
end
size() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 24
def size
  @params[:size]
end
uuid() click to toggle source
# File lib/s3_media_server_api/media/common_media_api.rb, line 16
def uuid
  @params[:uuid]
end