Class: S3MediaServerApi::Media::CommonMediaApi
- Inherits:
-
Object
- Object
- S3MediaServerApi::Media::CommonMediaApi
- Defined in:
- lib/s3_media_server_api/media/common_media_api.rb
Overview
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
Direct Known Subclasses
Class Method Summary collapse
- .create(uuid) ⇒ Object
-
.create_from_path(path) ⇒ Object
creates media file parameters: path - file path in file system.
-
.custom_async_request(action, params) ⇒ Object
this method should be used to send custom asynchronous request to s3_media_server.
-
.custom_sync_request(action, params) ⇒ Object
this method should be used to send custom synchronous request to s3_media_server.
-
.destroy(uuid) ⇒ Object
destroys media file parameters: uuid - uuid of file.
-
.resolve(uuid) ⇒ Object
fetches media file parameters: uuid - uuid of file.
Instance Method Summary collapse
- #as_hash ⇒ Object
- #exist? ⇒ Boolean
-
#initialize(response) ⇒ CommonMediaApi
constructor
A new instance of CommonMediaApi.
- #name ⇒ Object
- #size ⇒ Object
- #uuid ⇒ Object
Constructor Details
#initialize(response) ⇒ CommonMediaApi
Returns a new instance of CommonMediaApi.
12 13 14 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 12 def initialize(response) @params = response[:data].nil? ? {} : response[:data] end |
Class Method Details
.create(uuid) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# 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.(response) unless response.success? self.new(response) end |
.create_from_path(path) ⇒ Object
creates media file parameters: path - file path in file system
returns: response with created AwsFile information
59 60 61 62 63 |
# 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) ⇒ Object
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')
104 105 106 |
# 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) ⇒ Object
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')
93 94 95 |
# 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) ⇒ Object
destroys media file parameters: uuid - uuid of file
68 69 70 71 |
# 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 |
.resolve(uuid) ⇒ Object
fetches media file parameters: uuid - uuid of file
returns: response with file information
78 79 80 81 82 83 84 |
# 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 |
Instance Method Details
#as_hash ⇒ Object
28 29 30 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 28 def as_hash @params end |
#exist? ⇒ Boolean
32 33 34 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 32 def exist? !@params.empty? end |
#name ⇒ Object
20 21 22 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 20 def name @params[:name] end |
#size ⇒ Object
24 25 26 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 24 def size @params[:size] end |
#uuid ⇒ Object
16 17 18 |
# File 'lib/s3_media_server_api/media/common_media_api.rb', line 16 def uuid @params[:uuid] end |