s3_media_server_api 0.1.0.9 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67cc7e60f78b951e10130ca37c645b2dc9ed6ee6
4
- data.tar.gz: be756d7d1cfe701d892d4f8f05fb516a3d6bf8d6
3
+ metadata.gz: 6fb4b13fe747e3af3990c2d8a08e4c3ccb60766c
4
+ data.tar.gz: 5ce9e75067d2e47f3a7a3e912e4fa052ef2f4265
5
5
  SHA512:
6
- metadata.gz: ef7b0dd0e7d097b128c9752b51e19577a466148d2b6d68ca26b9f3f57932e3062dd322c414457f9f88ae5f551cf026172bc67b18c584f7c4e88a3ec4e92a1a9a
7
- data.tar.gz: a415ed7e763d60d97d651408e05a134b3735627ab03b2238a5f9ea7c33a686079e0087b34273149b91492f376c8872dcf96c71830c5915a7d4c5b62af879cd04
6
+ metadata.gz: f5d800aa65a4bd113331b6c1ad922951ba5c2811e9d1e6ded9748171d0f2cb5f7ce8b75837de047cc5fb95a2f31e099db3a56438831dad8e7cedf070085a1cc6
7
+ data.tar.gz: 084787667184b2363179070f932a1e1983843701cf57e4935093f4e360ab4e0959304ebfd3e97450dabcb7de8908bcf1890b10552b063cb809a2daa50c99cdfb
data/README.md CHANGED
@@ -163,6 +163,33 @@ video.versions[0].size
163
163
  S3MediaServerApi::Media::Video.destroy(video.uuid)
164
164
  ```
165
165
 
166
+ #### S3MediaServerApi::Media::Collection
167
+ Use S3MediaServerApi::Media::Collection to interact with Collection resource
168
+ ```ruby
169
+ # to create Collection, use create method
170
+ # provide uuid of collection owner
171
+ owner_uuid = "4edbfdf9-9517-4902-8e92-2212215b0de5"
172
+ collection = S3MediaServerApi::Media::Collection.create(owner_uuid)
173
+
174
+
175
+ # to resolve document, use resolve method
176
+ resolved_collection = S3MediaServerApi::Media::Collection.resolve(created_collection.uuid)
177
+
178
+ # both methods create and resolve return collection object
179
+
180
+ resolved_collection.uuid # uuid of the collection
181
+ resolved_collection.owner_uuid # uuid of the collection owner
182
+ resolved_collection.videos # array of videos
183
+ resolved_collection.documents # array of documents
184
+ resolved_collection.images # array of images
185
+ resolved_collection.audios # array of audio files
186
+ # NOTE: video, document, image and audio objects are described above
187
+
188
+ # use destroy method, to destroy collection
189
+ # this method is asynchronous, so it doesn't return anything
190
+ S3MediaServerApi::Media::Colllection.destroy(created_collection.uuid)
191
+ ```
192
+
166
193
  #### AwsFile
167
194
  ```ruby
168
195
  # to create aws file from its path, use upload method from S3MediaServerApi::Uploader module
@@ -3,6 +3,7 @@ require 's3_media_server_api/media/image'
3
3
  require 's3_media_server_api/media/video'
4
4
  require 's3_media_server_api/media/audio'
5
5
  require 's3_media_server_api/media/document'
6
+ require 's3_media_server_api/media/collection'
6
7
 
7
8
 
8
9
  module S3MediaServerApi
@@ -20,17 +20,6 @@ module S3MediaServerApi
20
20
  end
21
21
 
22
22
  class << self
23
- def create(uuid)
24
- Audio.new(super(uuid))
25
- end
26
-
27
- def create_from_path(path)
28
- Audio.new(super(path))
29
- end
30
-
31
- def resolve(uuid)
32
- Audio.new(super(uuid))
33
- end
34
23
  #
35
24
  # sends request to cut audio file
36
25
  # parameters: uuid - uuid of file
@@ -1,22 +1,22 @@
1
1
  module S3MediaServerApi
2
2
  module Media
3
- class COLLECTION < CommonMediaApi
3
+ class Collection < CommonMediaApi
4
4
  COLLECTION = 'collection'
5
5
 
6
6
  def videos
7
- @params[:videos].map { |video| Video.new(video) } if @params[:videos]
7
+ @params[:videos].map { |video| Video.new(data: video) } if @params[:videos]
8
8
  end
9
9
 
10
10
  def images
11
- @params[:images].map { |image| Image::ImageObject.new(image) } if @params[:images]
11
+ @params[:images].map { |image| Image::ImageObject.new(data: image) } if @params[:images]
12
12
  end
13
13
 
14
14
  def documents
15
- @params[:documents].map { |documents| Video.new(document) } if @params[:documents]
15
+ @params[:documents].map { |document| Video.new(data: document) } if @params[:documents]
16
16
  end
17
17
 
18
18
  def audios
19
- @params[:audios].map { |audios| Audio.new(audio) } if @params[:audios]
19
+ @params[:audios].map { |audio| Audio.new(data: audio) } if @params[:audios]
20
20
  end
21
21
 
22
22
  def owner_uuid
@@ -25,10 +25,6 @@ module S3MediaServerApi
25
25
 
26
26
  class << self
27
27
 
28
- def resolve(uuid)
29
- Collection.new(super(uuid))
30
- end
31
-
32
28
  private
33
29
 
34
30
  def media_type; COLLECTION; end
@@ -35,10 +35,20 @@ module S3MediaServerApi
35
35
 
36
36
  class << self
37
37
  def create(uuid)
38
- params = (media_type == 'video') ? { uuid: uuid } : { aws_file_uuid: uuid }
38
+ params = {}
39
+ case media_type
40
+ when 'video'
41
+ params = {uuid: uuid}
42
+ when 'collection'
43
+ params = {owner_uuid: uuid}
44
+ else
45
+ params = { aws_file_uuid: uuid }
46
+ end
47
+ return empty_object unless uuid
48
+
39
49
  response = AsynkRequest.sync_request(base_path, :create, params)
40
50
  raise CreationError.message_from_asynk_response(response) unless response.success?
41
- response
51
+ self.new(response)
42
52
  end
43
53
  #
44
54
  # creates media file
@@ -65,9 +75,10 @@ module S3MediaServerApi
65
75
  # returns: response with file information
66
76
  #
67
77
  def resolve(uuid)
78
+ return empty_object unless uuid
68
79
  cache_key = "#{media_type}/#{uuid}"
69
80
  Config.cache_class.fetch(cache_key) do
70
- AsynkRequest.sync_request(base_path, :resolve, uuid: uuid)
81
+ self.new(AsynkRequest.sync_request(base_path, :resolve, uuid: uuid))
71
82
  end
72
83
  end
73
84
  #
@@ -94,6 +105,9 @@ module S3MediaServerApi
94
105
  end
95
106
 
96
107
  private
108
+ def empty_object
109
+ self.new(data: nil)
110
+ end
97
111
  #
98
112
  # specifies media type which methods will be called
99
113
  #
@@ -8,17 +8,6 @@ module S3MediaServerApi
8
8
  end
9
9
 
10
10
  class << self
11
- def create(uuid)
12
- Document.new(super(uuid))
13
- end
14
-
15
- def create_from_path(path)
16
- Document.new(super(path))
17
- end
18
-
19
- def resolve(uuid)
20
- Document.new(super(uuid))
21
- end
22
11
 
23
12
  private
24
13
 
@@ -35,17 +35,6 @@ module S3MediaServerApi
35
35
  end
36
36
 
37
37
  class << self
38
- def create(uuid)
39
- Image.new(super(uuid))
40
- end
41
-
42
- def create_from_path(path)
43
- Image.new(super(path))
44
- end
45
-
46
- def resolve(uuid)
47
- Image.new(super(uuid))
48
- end
49
38
  #
50
39
  # copies image file
51
40
  # parameters: uuid - uuid of file
@@ -54,17 +54,6 @@ module S3MediaServerApi
54
54
  end
55
55
 
56
56
  class << self
57
- def create(uuid)
58
- Video.new(super(uuid))
59
- end
60
-
61
- def create_from_path(path)
62
- Video.new(super(path))
63
- end
64
-
65
- def resolve(uuid)
66
- Video.new(super(uuid))
67
- end
68
57
 
69
58
  private
70
59
 
@@ -25,6 +25,8 @@ module S3MediaServerApi
25
25
  mocked_image_sync_request(params)
26
26
  when /s3_media_server.media.(document).(\.*)/
27
27
  mocked_document_sync_request(params)
28
+ when /s3_media_server.media.(collection).(\.*)/
29
+ mocked_collection_sync_request(params)
28
30
  end
29
31
  end
30
32
 
@@ -49,9 +51,10 @@ module S3MediaServerApi
49
51
  end
50
52
 
51
53
  def mocked_video_sync_request(params)
54
+ uuid = params[:aws_file_uuid] ? params[:aws_file_uuid] : params[:uuid]
52
55
  response = {:data=>{:duration=>6.037,
53
56
  :transcoded=>true,
54
- :uuid=>params[:uuid],
57
+ :uuid=>uuid,
55
58
  :versions=>[{ :url=>"https://storage-nginx.stage.govermedia.com/test-bucket/test_files/18e776ab-c4ca-40cd-9ecb-a605664ce118.mp4",
56
59
  :format=>"mp4",
57
60
  :size=>326089,
@@ -139,6 +142,31 @@ module S3MediaServerApi
139
142
  name: "document.pdf"}}
140
143
  Request.new(response)
141
144
  end
145
+
146
+ def mocked_collection_sync_request(params)
147
+ response = {:data=>{:videos=>[{:duration=>104.50999999999999,
148
+ :transcoded=>true,
149
+ :uuid=>"597e7538-3455-4ec2-b234-0cc4bc6c4870",
150
+ :versions=>[{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/ccbb152c-328b-4f2d-bc09-aefc16416698.mp4", :format=>"mp4", :size=>12300035, :resolution=>"r480p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/e2de9962-99da-4d4e-8eb8-80d6d38e2526.mp4", :format=>"mp4", :size=>5796575, :resolution=>"r240p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/7773219c-feb4-43cf-927a-7b63d5638884.mp4", :format=>"mp4", :size=>9447976, :resolution=>"r360p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/cf52bc8a-976c-453d-9208-f998e014e9c4.webm", :format=>"webm", :size=>4079234, :resolution=>"r240p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/b5f5555c-9358-46b4-92fd-07a1fc06cc25.mp4", :format=>"mp4", :size=>29609393, :resolution=>"r720p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/c27ee433-c380-48ae-9507-23fccac2d115.webm", :format=>"webm", :size=>11323327, :resolution=>"r480p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/ed96c629-0ca8-4a07-ab30-81ff085b8560.webm", :format=>"webm", :size=>21693633, :resolution=>"r720p"}, {:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/644ba3fb-cc25-46fb-8e80-3a58a6554648.webm", :format=>"webm", :size=>8039883, :resolution=>"r360p"}],
151
+ :preview=>{:uuid=>"1e271fe0-5645-4ce2-bcdc-db0f93cf26d7", :size=>68287, :name=>nil, :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/5f30a9f3-b9a3-4b2f-8fac-86cb2c128def.jpeg", :width=>1280, :height=>720}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/0ab76f9d-4633-4e24-9937-d0a7ebad5359.jpeg", :width=>nil, :height=>nil}},
152
+ :screenshots=>[{:uuid=>"d96fc060-ccd0-4ce1-86f8-af11f59b82fb", :size=>68448, :name=>nil, :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/d2b24e87-5aee-4180-90b0-d80276ea9843.jpeg", :width=>1280, :height=>720}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/de3bf8ec-18c2-4039-823e-0f12ae9bed55.jpeg", :width=>nil, :height=>nil}}, {:uuid=>"1e271fe0-5645-4ce2-bcdc-db0f93cf26d7", :size=>68287, :name=>nil, :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/5f30a9f3-b9a3-4b2f-8fac-86cb2c128def.jpeg", :width=>1280, :height=>720}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/0ab76f9d-4633-4e24-9937-d0a7ebad5359.jpeg", :width=>nil, :height=>nil}}, {:uuid=>"ce174591-d297-43da-9cbd-00056f22dc29", :size=>64795, :name=>nil, :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/0f364891-37ae-4acd-b89f-e93ccbf9fd9d.jpeg", :width=>1280, :height=>720}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/b7094c5c-ae8b-447d-844b-00c3acbf4333.jpeg", :width=>440, :height=>248}}], :name=>"2c6d87a9-1d81-48e5-9282-81a76f1e942d.mp4", :embed_url=>"https://stage.govermedia.com/embed_video/?uuid=597e7538-3455-4ec2-b234-0cc4bc6c4870", :provider=>"govermedia"}],
153
+ :audios=>[{ url: "https://storage-nginx.stage.govermedia.com/test-bucket/test_files/#{SecureRandom.uuid}.mp3",
154
+ sample_url: "https://storage-nginx.stage.govermedia.com/test-bucket/test_files/#{SecureRandom.uuid}.mp3",
155
+ uuid: 'asfasfasfasfasf',
156
+ size: 704512,
157
+ sample_uploaded: true,
158
+ name: "music_test.mp3",
159
+ duration: 87.891875,
160
+ sample_duration: 19.983673}],
161
+ :documents=>[{url: "https://storage-nginx.stage.govermedia.com/test-bucket/test_files/95d5edfe-1f17-422d-85c7-69f63e00c3fe.mp4",
162
+ uuid: "c147f0aa-f0e3-42da-ab0e-28895dc21ea1",
163
+ size: 245779,
164
+ name: "document.pdf"}],
165
+ :images=>[{:uuid=>"ccfac9dc-e208-4644-b932-18e1aae95f4f", :size=>312857, :name=>'image1.jpeg', :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/23b3d879-bc0c-47a1-aba5-2fcc20ee6872.png", :width=>600, :height=>437}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/589ea98b-1c90-46e4-a98f-0e42798a549c.jpeg", :width=>384, :height=>280}}, {:uuid=>"c1e43b8d-e593-466d-8aa1-0fdd56282052", :size=>83782, :name=>nil, :source=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/34ee64a7-bf47-4d47-8dc2-c3d8ae522087.png", :width=>836, :height=>546}, :thumb=>{:url=>"https://storage-nginx.stage.govermedia.com/gm-s2-f/files/89847cd4-4e88-4373-af53-54ad3d52fbdd.jpeg", :width=>429, :height=>280}}],
166
+ :uuid=>params[:uuid],
167
+ :owner_uuid=>"ee287478-d4d7-4731-a11e-d18cf8cfd1c5"}}
168
+ Request.new(response)
169
+ end
142
170
  end
143
171
  end
144
172
  end
@@ -1,3 +1,3 @@
1
1
  module S3MediaServerApi
2
- VERSION = "0.1.0.9"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3_media_server_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.9
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ayrat Badykov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-25 00:00:00.000000000 Z
11
+ date: 2016-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler