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
# 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
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
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
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
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
# File lib/s3_media_server_api/media/common_media_api.rb, line 12 def initialize(response) @params = response[:data].nil? ? {} : response[:data] end
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 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
# File lib/s3_media_server_api/media/common_media_api.rb, line 109 def empty_object self.new(data: nil) end
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
# File lib/s3_media_server_api/media/common_media_api.rb, line 28 def as_hash @params end
# File lib/s3_media_server_api/media/common_media_api.rb, line 32 def exist? !@params.empty? end
# File lib/s3_media_server_api/media/common_media_api.rb, line 20 def name @params[:name] end
# File lib/s3_media_server_api/media/common_media_api.rb, line 24 def size @params[:size] end
# File lib/s3_media_server_api/media/common_media_api.rb, line 16 def uuid @params[:uuid] end