resizing 1.0.0.pre → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +61 -0
- data/Gemfile +6 -2
- data/README.md +59 -32
- data/lib/resizing/active_storage/service/resizing_service.rb +6 -2
- data/lib/resizing/active_storage/service.rb +9 -0
- data/lib/resizing/active_storage.rb +7 -0
- data/lib/resizing/carrier_wave/storage/file.rb +35 -16
- data/lib/resizing/carrier_wave/storage/remote.rb +7 -3
- data/lib/resizing/carrier_wave.rb +10 -11
- data/lib/resizing/client.rb +39 -41
- data/lib/resizing/configurable.rb +1 -1
- data/lib/resizing/configuration.rb +6 -16
- data/lib/resizing/http_clientable.rb +3 -3
- data/lib/resizing/mock_client.rb +6 -5
- data/lib/resizing/public_id.rb +5 -4
- data/lib/resizing/version.rb +1 -1
- data/lib/resizing.rb +16 -12
- data/resizing.gemspec +6 -5
- data/test/resizing/active_storage_service_test.rb +98 -0
- data/test/resizing/carrier_wave/storage/file_test.rb +149 -8
- data/test/resizing/carrier_wave/storage/remote_test.rb +75 -0
- data/test/resizing/carrier_wave_test.rb +99 -37
- data/test/resizing/client_test.rb +96 -11
- data/test/resizing/configurable_test.rb +82 -0
- data/test/resizing/configuration_test.rb +118 -2
- data/test/resizing/constants_test.rb +25 -0
- data/test/resizing/error_test.rb +73 -0
- data/test/resizing/http_clientable_test.rb +84 -0
- data/test/resizing/mock_client_test.rb +75 -0
- data/test/resizing/public_id_test.rb +1 -1
- data/test/resizing_module_test.rb +206 -0
- data/test/test_helper.rb +106 -8
- metadata +75 -27
- data/.circleci/config.yml +0 -73
- data/lib/resizing/video/client.rb +0 -116
- data/lib/resizing/video.rb +0 -8
- data/test/resizing/video/client_test.rb +0 -158
- data/test/vcr/video/metadata/success.yml +0 -47
- data/test/vcr/video/prepare/success.yml +0 -47
- data/test/vcr/video/upload_completed/success.yml +0 -47
- /data/{exe → bin}/console +0 -0
- /data/{exe → bin}/generate-changelog +0 -0
- /data/{exe → bin}/setup +0 -0
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: resizing
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Junichiro Kasuya
|
|
8
|
-
autorequire:
|
|
9
|
-
bindir:
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -28,16 +28,22 @@ dependencies:
|
|
|
28
28
|
name: rails
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: '6.0'
|
|
34
|
+
- - "<"
|
|
35
|
+
- !ruby/object:Gem::Version
|
|
36
|
+
version: '7.1'
|
|
34
37
|
type: :development
|
|
35
38
|
prerelease: false
|
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
40
|
requirements:
|
|
38
|
-
- - "
|
|
41
|
+
- - ">="
|
|
39
42
|
- !ruby/object:Gem::Version
|
|
40
43
|
version: '6.0'
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '7.1'
|
|
41
47
|
- !ruby/object:Gem::Dependency
|
|
42
48
|
name: carrierwave
|
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -68,6 +74,20 @@ dependencies:
|
|
|
68
74
|
version: '0'
|
|
69
75
|
- !ruby/object:Gem::Dependency
|
|
70
76
|
name: minitest
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '5.16'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '5.16'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: minitest-ci
|
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
|
72
92
|
requirements:
|
|
73
93
|
- - ">="
|
|
@@ -81,7 +101,7 @@ dependencies:
|
|
|
81
101
|
- !ruby/object:Gem::Version
|
|
82
102
|
version: '0'
|
|
83
103
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
104
|
+
name: mysql2
|
|
85
105
|
requirement: !ruby/object:Gem::Requirement
|
|
86
106
|
requirements:
|
|
87
107
|
- - ">="
|
|
@@ -108,6 +128,34 @@ dependencies:
|
|
|
108
128
|
- - ">="
|
|
109
129
|
- !ruby/object:Gem::Version
|
|
110
130
|
version: '0'
|
|
131
|
+
- !ruby/object:Gem::Dependency
|
|
132
|
+
name: simplecov
|
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0'
|
|
138
|
+
type: :development
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - ">="
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: simplecov-cobertura
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - ">="
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0'
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - ">="
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0'
|
|
111
159
|
- !ruby/object:Gem::Dependency
|
|
112
160
|
name: timecop
|
|
113
161
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -139,14 +187,11 @@ dependencies:
|
|
|
139
187
|
description: 'Client and utilities for Resizing '
|
|
140
188
|
email:
|
|
141
189
|
- junichiro.kasuya@gmail.com
|
|
142
|
-
executables:
|
|
143
|
-
- console
|
|
144
|
-
- generate-changelog
|
|
145
|
-
- setup
|
|
190
|
+
executables: []
|
|
146
191
|
extensions: []
|
|
147
192
|
extra_rdoc_files: []
|
|
148
193
|
files:
|
|
149
|
-
- ".
|
|
194
|
+
- ".github/workflows/test.yml"
|
|
150
195
|
- ".gitignore"
|
|
151
196
|
- ".rubocop.yml"
|
|
152
197
|
- CHANGELOG.md
|
|
@@ -154,11 +199,13 @@ files:
|
|
|
154
199
|
- LICENSE.txt
|
|
155
200
|
- README.md
|
|
156
201
|
- Rakefile
|
|
202
|
+
- bin/console
|
|
203
|
+
- bin/generate-changelog
|
|
204
|
+
- bin/setup
|
|
157
205
|
- docker-compose.yml
|
|
158
|
-
- exe/console
|
|
159
|
-
- exe/generate-changelog
|
|
160
|
-
- exe/setup
|
|
161
206
|
- lib/resizing.rb
|
|
207
|
+
- lib/resizing/active_storage.rb
|
|
208
|
+
- lib/resizing/active_storage/service.rb
|
|
162
209
|
- lib/resizing/active_storage/service/resizing_service.rb
|
|
163
210
|
- lib/resizing/carrier_wave.rb
|
|
164
211
|
- lib/resizing/carrier_wave/storage/file.rb
|
|
@@ -171,18 +218,22 @@ files:
|
|
|
171
218
|
- lib/resizing/mock_client.rb
|
|
172
219
|
- lib/resizing/public_id.rb
|
|
173
220
|
- lib/resizing/version.rb
|
|
174
|
-
- lib/resizing/video.rb
|
|
175
|
-
- lib/resizing/video/client.rb
|
|
176
221
|
- resizing.gemspec
|
|
177
222
|
- test/data/images/empty_file.jpg
|
|
178
223
|
- test/data/images/sample1.jpg
|
|
224
|
+
- test/resizing/active_storage_service_test.rb
|
|
179
225
|
- test/resizing/carrier_wave/storage/file_test.rb
|
|
180
226
|
- test/resizing/carrier_wave/storage/remote_test.rb
|
|
181
227
|
- test/resizing/carrier_wave_test.rb
|
|
182
228
|
- test/resizing/client_test.rb
|
|
229
|
+
- test/resizing/configurable_test.rb
|
|
183
230
|
- test/resizing/configuration_test.rb
|
|
231
|
+
- test/resizing/constants_test.rb
|
|
232
|
+
- test/resizing/error_test.rb
|
|
233
|
+
- test/resizing/http_clientable_test.rb
|
|
234
|
+
- test/resizing/mock_client_test.rb
|
|
184
235
|
- test/resizing/public_id_test.rb
|
|
185
|
-
- test/
|
|
236
|
+
- test/resizing_module_test.rb
|
|
186
237
|
- test/resizing_test.rb
|
|
187
238
|
- test/test_helper.rb
|
|
188
239
|
- test/vcr/carrier_wave_test/remove_resizing_picture.yml
|
|
@@ -192,9 +243,6 @@ files:
|
|
|
192
243
|
- test/vcr/client/metadata.yml
|
|
193
244
|
- test/vcr/client/post.yml
|
|
194
245
|
- test/vcr/client/put.yml
|
|
195
|
-
- test/vcr/video/metadata/success.yml
|
|
196
|
-
- test/vcr/video/prepare/success.yml
|
|
197
|
-
- test/vcr/video/upload_completed/success.yml
|
|
198
246
|
homepage: https://github.com/jksy/resizing-gem
|
|
199
247
|
licenses:
|
|
200
248
|
- MIT
|
|
@@ -202,7 +250,7 @@ metadata:
|
|
|
202
250
|
allowed_push_host: https://rubygems.org
|
|
203
251
|
homepage_uri: https://github.com/jksy/resizing-gem
|
|
204
252
|
source_code_uri: https://github.com/jksy/resizing-gem.
|
|
205
|
-
post_install_message:
|
|
253
|
+
post_install_message:
|
|
206
254
|
rdoc_options: []
|
|
207
255
|
require_paths:
|
|
208
256
|
- lib
|
|
@@ -210,15 +258,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
210
258
|
requirements:
|
|
211
259
|
- - ">="
|
|
212
260
|
- !ruby/object:Gem::Version
|
|
213
|
-
version:
|
|
261
|
+
version: 3.0.0
|
|
214
262
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
263
|
requirements:
|
|
216
|
-
- - "
|
|
264
|
+
- - ">="
|
|
217
265
|
- !ruby/object:Gem::Version
|
|
218
|
-
version:
|
|
266
|
+
version: '0'
|
|
219
267
|
requirements: []
|
|
220
|
-
rubygems_version: 3.
|
|
221
|
-
signing_key:
|
|
268
|
+
rubygems_version: 3.4.19
|
|
269
|
+
signing_key:
|
|
222
270
|
specification_version: 4
|
|
223
271
|
summary: Client and utilities for Resizing
|
|
224
272
|
test_files: []
|
data/.circleci/config.yml
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
version: 2
|
|
2
|
-
|
|
3
|
-
jobs:
|
|
4
|
-
build:
|
|
5
|
-
docker:
|
|
6
|
-
- image: circleci/ruby:2.6.2-node
|
|
7
|
-
environment:
|
|
8
|
-
BUNDLE_JOBS: 4
|
|
9
|
-
BUNDLE_RETRY: 3
|
|
10
|
-
BUNDLE_PATH: vendor/bundle
|
|
11
|
-
BUNDLE_APP_CONFIG: "./.bundle"
|
|
12
|
-
TZ: /usr/share/zoneinfo/Asia/Tokyo
|
|
13
|
-
LANG: ja_JP.UTF8
|
|
14
|
-
- image: circleci/mysql:5.7
|
|
15
|
-
environment:
|
|
16
|
-
MYSQL_ROOT_PASSWORD: secret
|
|
17
|
-
MYSQL_DATABASE: resizing_gem_test
|
|
18
|
-
MYSQL_USER: resizing_gem
|
|
19
|
-
MYSQL_PASSWORD: secret
|
|
20
|
-
TZ: /usr/share/zoneinfo/Asia/Tokyo
|
|
21
|
-
LANG: ja_JP.UTF8
|
|
22
|
-
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
|
|
23
|
-
|
|
24
|
-
steps:
|
|
25
|
-
- checkout
|
|
26
|
-
- run:
|
|
27
|
-
name: Which bundler?
|
|
28
|
-
command: |
|
|
29
|
-
bundle -v
|
|
30
|
-
bundle config
|
|
31
|
-
|
|
32
|
-
- restore_cache:
|
|
33
|
-
keys:
|
|
34
|
-
- v2-{{ .Environment.CACHE_KEY }}-gem-cache-{{ arch }}-{{ .Branch }}
|
|
35
|
-
- v2-{{ .Environment.CACHE_KEY }}-gem-cache
|
|
36
|
-
|
|
37
|
-
- run:
|
|
38
|
-
name: reinstall rake && bundle install
|
|
39
|
-
command: |
|
|
40
|
-
sudo gem install bundler
|
|
41
|
-
sudo gem uninstall -x rake
|
|
42
|
-
echo "install: --no-document" >> ~/.gemrc
|
|
43
|
-
bundle config set --local path vendor/bundle
|
|
44
|
-
bundle config set --local clean true
|
|
45
|
-
bundle check || bundle install
|
|
46
|
-
|
|
47
|
-
- save_cache:
|
|
48
|
-
key: v2-{{ .Environment.CACHE_KEY }}-gem-cache-{{ arch }}-{{ .Branch }}
|
|
49
|
-
paths:
|
|
50
|
-
- vendor/bundle
|
|
51
|
-
|
|
52
|
-
- run:
|
|
53
|
-
name: connectable MySQL?
|
|
54
|
-
command: |
|
|
55
|
-
dockerize -wait tcp://127.0.0.1:3306 -timeout 1m
|
|
56
|
-
|
|
57
|
-
# - run:
|
|
58
|
-
# name: rubocop
|
|
59
|
-
# command: bundle exec rubocop --parallel
|
|
60
|
-
# - run:
|
|
61
|
-
# name: brakeman
|
|
62
|
-
# command: bundle exec brakeman --no-exit-on-error -w 1 -z
|
|
63
|
-
- run:
|
|
64
|
-
command: bundle exec rake test
|
|
65
|
-
when: always
|
|
66
|
-
- store_test_results:
|
|
67
|
-
path: test/reports
|
|
68
|
-
|
|
69
|
-
workflows:
|
|
70
|
-
version: 2
|
|
71
|
-
build-deploy:
|
|
72
|
-
jobs:
|
|
73
|
-
- build
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Resizing
|
|
4
|
-
module Video
|
|
5
|
-
class Client
|
|
6
|
-
include Resizing::Constants
|
|
7
|
-
include Resizing::Configurable
|
|
8
|
-
include Resizing::HttpClientable
|
|
9
|
-
|
|
10
|
-
def initialize(*attrs)
|
|
11
|
-
initialize_config(*attrs)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def prepare
|
|
15
|
-
url = build_prepare_url
|
|
16
|
-
|
|
17
|
-
response = handle_faraday_error do
|
|
18
|
-
http_client.post(url) do |request|
|
|
19
|
-
request.headers['X-ResizingToken'] = config.generate_auth_header
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
handle_prepare_response response
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def upload_completed response_or_url
|
|
26
|
-
url = url_from response_or_url, 'upload_completed_url'
|
|
27
|
-
|
|
28
|
-
response = handle_faraday_error do
|
|
29
|
-
http_client.put(url) do |request|
|
|
30
|
-
request.headers['X-ResizingToken'] = config.generate_auth_header
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
handle_upload_completed_response response
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def delete response_or_url
|
|
37
|
-
url = url_from response_or_url, 'destroy_url'
|
|
38
|
-
|
|
39
|
-
response = handle_faraday_error do
|
|
40
|
-
http_client.put(url) do |request|
|
|
41
|
-
request.headers['X-ResizingToken'] = config.generate_auth_header
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
handle_upload_completed_response response
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def metadata response_or_url
|
|
48
|
-
url = url_from response_or_url, 'self_url'
|
|
49
|
-
|
|
50
|
-
response = handle_faraday_error do
|
|
51
|
-
http_client.get(url) do |request|
|
|
52
|
-
request.headers['X-ResizingToken'] = config.generate_auth_header
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
handle_metadata_response response
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def build_prepare_url
|
|
59
|
-
"#{config.video_host}/projects/#{config.project_id}/upload/videos/prepare"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
private
|
|
63
|
-
|
|
64
|
-
def url_from response_or_url, name
|
|
65
|
-
if response_or_url.kind_of? String
|
|
66
|
-
response_or_url
|
|
67
|
-
elsif response_or_url.kind_of? Hash
|
|
68
|
-
response_or_url[name.to_s] || response_or_url[name.intern]
|
|
69
|
-
else
|
|
70
|
-
raise ArgumentError, "upload_completed is require Hash or String"
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def handle_prepare_response response
|
|
76
|
-
raise APIError, "no response is returned" if response.nil?
|
|
77
|
-
|
|
78
|
-
case response.status
|
|
79
|
-
when HTTP_STATUS_OK, HTTP_STATUS_CREATED
|
|
80
|
-
JSON.parse(response.body)
|
|
81
|
-
else
|
|
82
|
-
handle_error_response response
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def handle_upload_completed_response response
|
|
87
|
-
raise APIError, "no response is returned" if response.nil?
|
|
88
|
-
|
|
89
|
-
case response.status
|
|
90
|
-
when HTTP_STATUS_OK
|
|
91
|
-
JSON.parse(response.body)
|
|
92
|
-
else
|
|
93
|
-
handle_error_response response
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def handle_metadata_response response
|
|
98
|
-
raise APIError, "no response is returned" if response.nil?
|
|
99
|
-
|
|
100
|
-
case response.status
|
|
101
|
-
when HTTP_STATUS_OK
|
|
102
|
-
JSON.parse(response.body)
|
|
103
|
-
else
|
|
104
|
-
handle_error_response response
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def handle_error_response response
|
|
109
|
-
result = JSON.parse(response.body) rescue {}
|
|
110
|
-
err = APIError.new("invalid http status code #{response.status}")
|
|
111
|
-
err.decoded_body = result
|
|
112
|
-
raise err
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
end
|
data/lib/resizing/video.rb
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
module Video
|
|
7
|
-
class ClientTest < Minitest::Test
|
|
8
|
-
def setup
|
|
9
|
-
# TODO
|
|
10
|
-
# refactoring
|
|
11
|
-
@configuration_template = {
|
|
12
|
-
image_host: 'http://192.168.56.101:5000',
|
|
13
|
-
video_host: 'http://192.168.56.101:5000',
|
|
14
|
-
project_id: 'f11dfad4-2247-4220-b3b2-efeb82864a97',
|
|
15
|
-
secret_token: 'xn2fkkrrp2uiragliaigkx3mwnmjis6dg35sa3kya12sq133t3xjp36s7iwamp64',
|
|
16
|
-
open_timeout: 10,
|
|
17
|
-
response_timeout: 20
|
|
18
|
-
}
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def teardown
|
|
22
|
-
# NOP
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def test_is_initialized
|
|
26
|
-
Resizing.configure = @configuration_template
|
|
27
|
-
|
|
28
|
-
client = Resizing::Video::Client.new
|
|
29
|
-
assert(!client.config.nil?)
|
|
30
|
-
assert_equal(client.config, Resizing.configure)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_is_initialized_with_configuration
|
|
34
|
-
config = Resizing::Configuration.new(@configuration_template)
|
|
35
|
-
client = Resizing::Video::Client.new(config)
|
|
36
|
-
assert(!client.config.nil?)
|
|
37
|
-
assert_equal(client.config, config)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def test_is_callable_build_prepare_url
|
|
41
|
-
Resizing.configure = @configuration_template
|
|
42
|
-
|
|
43
|
-
client = Resizing::Video::Client.new
|
|
44
|
-
url = client.build_prepare_url
|
|
45
|
-
assert_equal(url, 'http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/prepare')
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def test_is_callable_prepare
|
|
49
|
-
Resizing.configure = @configuration_template
|
|
50
|
-
|
|
51
|
-
client = Resizing::Video::Client.new
|
|
52
|
-
VCR.use_cassette 'video/prepare/success', record: :once do
|
|
53
|
-
base_url = 'http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d'
|
|
54
|
-
r = client.prepare
|
|
55
|
-
assert_equal(r['id'], '3a101d25-e03f-4fac-a4ee-dbe882c6139d')
|
|
56
|
-
assert_equal(r['project_id'], Resizing.configure.project_id)
|
|
57
|
-
assert_equal(r['state'], 'initialized')
|
|
58
|
-
assert_nil(r['deleted_at'])
|
|
59
|
-
# assert_nil(r['source_uri']) # TODO: remove
|
|
60
|
-
assert(r['s3_presigned_url'] != nil)
|
|
61
|
-
assert_nil(r['converted_uri']) # TODO:remove
|
|
62
|
-
assert(r['created_at'] != nil)
|
|
63
|
-
assert(r['updated_at'] != nil)
|
|
64
|
-
assert(r['upload_completed_url'], "#{base_url}/upload_completed")
|
|
65
|
-
assert(r['self_url'], "#{base_url}.json")
|
|
66
|
-
assert_nil(r['m3u8_url'])
|
|
67
|
-
assert_nil(r['avc_url'])
|
|
68
|
-
assert_nil(r['hevc_url'])
|
|
69
|
-
assert_includes(r['thumbnail_url'], 'now-converting')
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def test_is_timeout_with_prepare_method
|
|
74
|
-
Resizing.configure = @configuration_template.merge(project_id: 'timeout_project_id')
|
|
75
|
-
|
|
76
|
-
client = Resizing::Video::Client.new
|
|
77
|
-
assert_raises Resizing::APIError do
|
|
78
|
-
client.prepare
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def test_is_callable_upload_complete_with_response
|
|
83
|
-
Resizing.configure = @configuration_template
|
|
84
|
-
|
|
85
|
-
client = Resizing::Video::Client.new
|
|
86
|
-
r = nil
|
|
87
|
-
VCR.use_cassette 'video/prepare/success', record: :once do
|
|
88
|
-
r = client.prepare
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
VCR.use_cassette 'video/upload_completed/success', record: :once do
|
|
92
|
-
r = client.upload_completed r
|
|
93
|
-
assert_upload_completed_response r
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def test_is_callable_upload_complete_with_string
|
|
98
|
-
Resizing.configure = @configuration_template
|
|
99
|
-
|
|
100
|
-
client = Resizing::Video::Client.new
|
|
101
|
-
r = nil
|
|
102
|
-
VCR.use_cassette 'video/prepare/success', record: :once do
|
|
103
|
-
r = client.prepare
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
VCR.use_cassette 'video/upload_completed/success', record: :once do
|
|
107
|
-
r = client.upload_completed r['upload_completed_url']
|
|
108
|
-
assert_upload_completed_response r
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def test_is_callable_metadata_with_response
|
|
113
|
-
Resizing.configure = @configuration_template
|
|
114
|
-
|
|
115
|
-
client = Resizing::Video::Client.new
|
|
116
|
-
r = nil
|
|
117
|
-
VCR.use_cassette 'video/prepare/success', record: :once do
|
|
118
|
-
r = client.prepare
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
completed_response = nil
|
|
122
|
-
VCR.use_cassette 'video/upload_completed/success', record: :once do
|
|
123
|
-
completed_response = client.upload_completed r['upload_completed_url']
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
VCR.use_cassette 'video/metadata/success', record: :once do
|
|
127
|
-
r = client.metadata r
|
|
128
|
-
assert_equal(completed_response, r)
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def assert_upload_completed_response r
|
|
133
|
-
base_url = 'http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d'
|
|
134
|
-
assert_equal(r['id'], '3a101d25-e03f-4fac-a4ee-dbe882c6139d')
|
|
135
|
-
assert_equal(r['project_id'], Resizing.configure.project_id)
|
|
136
|
-
assert_equal(r['state'], 'uploaded')
|
|
137
|
-
assert_nil(r['deleted_at'])
|
|
138
|
-
# assert(r['source_uri'] != nil) # TODO: remove
|
|
139
|
-
assert(r['s3_presigned_url'] != nil)
|
|
140
|
-
# assert_equal(r['converted_uri'], "#{base_url}/") # TODO:remove
|
|
141
|
-
assert(r['created_at'] != nil)
|
|
142
|
-
assert(r['updated_at'] != nil)
|
|
143
|
-
assert(r['upload_completed_url'], "#{base_url}/upload_completed")
|
|
144
|
-
assert(r['self_url'], "#{base_url}.json")
|
|
145
|
-
assert_nil(r['m3u8_url'])
|
|
146
|
-
assert_nil(r['avc_url'])
|
|
147
|
-
assert_nil(r['hevc_url'])
|
|
148
|
-
assert_includes(r['thumbnail_url'], 'now-converting')
|
|
149
|
-
assert_equal(r['job_state']['id'], 'a586d38f-bdc3-4af2-9dbc-e0c18d2d54c5')
|
|
150
|
-
assert_equal(r['job_state']['upload_video_id'], '3a101d25-e03f-4fac-a4ee-dbe882c6139d')
|
|
151
|
-
assert_equal(r['job_state']['state'], 'initialized')
|
|
152
|
-
assert_equal(r['job_state']['job_percent_complete'], 0)
|
|
153
|
-
assert(r['job_state']['created_at'] != nil)
|
|
154
|
-
assert(r['job_state']['updated_at'] != nil)
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
http_interactions:
|
|
3
|
-
- request:
|
|
4
|
-
method: get
|
|
5
|
-
uri: http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d.json
|
|
6
|
-
body:
|
|
7
|
-
encoding: US-ASCII
|
|
8
|
-
string: ''
|
|
9
|
-
headers:
|
|
10
|
-
User-Agent:
|
|
11
|
-
- Faraday v1.0.1
|
|
12
|
-
X-ResizingToken:
|
|
13
|
-
- v1,1611308558,a02cf32edef894208f6d1bc17cc6182783728e2b2edfdca1bf6b3109fe37a58d
|
|
14
|
-
response:
|
|
15
|
-
status:
|
|
16
|
-
code: 200
|
|
17
|
-
message: OK
|
|
18
|
-
headers:
|
|
19
|
-
x-frame-options:
|
|
20
|
-
- SAMEORIGIN
|
|
21
|
-
x-xss-protection:
|
|
22
|
-
- 1; mode=block
|
|
23
|
-
x-content-type-options:
|
|
24
|
-
- nosniff
|
|
25
|
-
x-download-options:
|
|
26
|
-
- noopen
|
|
27
|
-
x-permitted-cross-domain-policies:
|
|
28
|
-
- none
|
|
29
|
-
referrer-policy:
|
|
30
|
-
- strict-origin-when-cross-origin
|
|
31
|
-
content-type:
|
|
32
|
-
- application/json; charset=utf-8
|
|
33
|
-
etag:
|
|
34
|
-
- W/"f2386fd24b9a80cecab7721608aa8902"
|
|
35
|
-
cache-control:
|
|
36
|
-
- max-age=0, private, must-revalidate
|
|
37
|
-
x-request-id:
|
|
38
|
-
- 84895278-9508-45c0-a7dc-d1087dc68813
|
|
39
|
-
x-runtime:
|
|
40
|
-
- '0.023674'
|
|
41
|
-
transfer-encoding:
|
|
42
|
-
- chunked
|
|
43
|
-
body:
|
|
44
|
-
encoding: UTF-8
|
|
45
|
-
string: '{"id":"3a101d25-e03f-4fac-a4ee-dbe882c6139d","project_id":"f11dfad4-2247-4220-b3b2-efeb82864a97","state":"uploaded","source_uri":"s3://resizing-bucket-development-video/videos/uploading/f11dfad4-2247-4220-b3b2-efeb82864a97/3a101d25-e03f-4fac-a4ee-dbe882c6139d/1dc40aae-29ab-4369-87da-10b146371fb8","deleted_at":null,"s3_presigned_url":"https://resizing-bucket-development-video.s3.ap-northeast-1.amazonaws.com/videos/uploading/f11dfad4-2247-4220-b3b2-efeb82864a97/3a101d25-e03f-4fac-a4ee-dbe882c6139d/1dc40aae-29ab-4369-87da-10b146371fb8?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIXXXXXXXXXX%2F20210122%2Fap-northeast-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20210122T094237Z\u0026X-Amz-Expires=900\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=c847ca1bfc20b7caeefcb999697df3cfd531aa2b7f0aa13f9066f289f693c22d","converted_uri":"s3://resizing-bucket-development-video/videos/converted/f11dfad4-2247-4220-b3b2-efeb82864a97/3a101d25-e03f-4fac-a4ee-dbe882c6139d/1dc40aae-29ab-4369-87da-10b146371fb8","created_at":"2021-01-22T09:42:37.670Z","updated_at":"2021-01-22T09:42:37.878Z","upload_completed_url":"http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d/upload_completed","self_url":"http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d.json","m3u8_url":null,"hevc_url":null,"avc_url":null,"thumbnail_url":"/assets/videos/now-converting-8a05d294385c14270a3662e01df5e50578cabcd2787123c18057ac06b101344c.png","job_state":{"id":"a586d38f-bdc3-4af2-9dbc-e0c18d2d54c5","upload_video_id":"3a101d25-e03f-4fac-a4ee-dbe882c6139d","state":"initialized","job_percent_complete":0,"created_at":"2021-01-22T09:42:38.501Z","updated_at":"2021-01-22T09:42:38.501Z"}}'
|
|
46
|
-
recorded_at: Fri, 22 Jan 2021 09:42:38 GMT
|
|
47
|
-
recorded_with: VCR 6.0.0
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
http_interactions:
|
|
3
|
-
- request:
|
|
4
|
-
method: post
|
|
5
|
-
uri: http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/prepare
|
|
6
|
-
body:
|
|
7
|
-
encoding: US-ASCII
|
|
8
|
-
string: ''
|
|
9
|
-
headers:
|
|
10
|
-
User-Agent:
|
|
11
|
-
- Faraday v1.0.1
|
|
12
|
-
X-ResizingToken:
|
|
13
|
-
- v1,1611308557,6628235db472f228a7c3c6b309e081b6c32aac01890abbfd2f38230ff4105c1c
|
|
14
|
-
response:
|
|
15
|
-
status:
|
|
16
|
-
code: 200
|
|
17
|
-
message: OK
|
|
18
|
-
headers:
|
|
19
|
-
x-frame-options:
|
|
20
|
-
- SAMEORIGIN
|
|
21
|
-
x-xss-protection:
|
|
22
|
-
- 1; mode=block
|
|
23
|
-
x-content-type-options:
|
|
24
|
-
- nosniff
|
|
25
|
-
x-download-options:
|
|
26
|
-
- noopen
|
|
27
|
-
x-permitted-cross-domain-policies:
|
|
28
|
-
- none
|
|
29
|
-
referrer-policy:
|
|
30
|
-
- strict-origin-when-cross-origin
|
|
31
|
-
content-type:
|
|
32
|
-
- application/json; charset=utf-8
|
|
33
|
-
etag:
|
|
34
|
-
- W/"273d4e663c17e06deb0c69cc90bb79b6"
|
|
35
|
-
cache-control:
|
|
36
|
-
- max-age=0, private, must-revalidate
|
|
37
|
-
x-request-id:
|
|
38
|
-
- e586873a-9cc9-45a0-a216-5e62165cb9f1
|
|
39
|
-
x-runtime:
|
|
40
|
-
- '0.046932'
|
|
41
|
-
transfer-encoding:
|
|
42
|
-
- chunked
|
|
43
|
-
body:
|
|
44
|
-
encoding: UTF-8
|
|
45
|
-
string: '{"id":"3a101d25-e03f-4fac-a4ee-dbe882c6139d","project_id":"f11dfad4-2247-4220-b3b2-efeb82864a97","state":"initialized","source_uri":"s3://resizing-bucket-development-video/videos/uploading/f11dfad4-2247-4220-b3b2-efeb82864a97/3a101d25-e03f-4fac-a4ee-dbe882c6139d/1dc40aae-29ab-4369-87da-10b146371fb8","deleted_at":null,"s3_presigned_url":"https://resizing-bucket-development-video.s3.ap-northeast-1.amazonaws.com/videos/uploading/f11dfad4-2247-4220-b3b2-efeb82864a97/3a101d25-e03f-4fac-a4ee-dbe882c6139d/1dc40aae-29ab-4369-87da-10b146371fb8?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIXXXXXXXXXXXXXX%2F20210122%2Fap-northeast-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20210122T094237Z\u0026X-Amz-Expires=900\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=c847ca1bfc20b7caeefcb999697df3cfd531aa2b7f0aa13f9066f289f693c22d","converted_uri":null,"created_at":"2021-01-22T09:42:37.670Z","updated_at":"2021-01-22T09:42:37.670Z","upload_completed_url":"http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d/upload_completed","self_url":"http://192.168.56.101:5000/projects/f11dfad4-2247-4220-b3b2-efeb82864a97/upload/videos/3a101d25-e03f-4fac-a4ee-dbe882c6139d.json","m3u8_url":null,"hevc_url":null,"avc_url":null,"thumbnail_url":"/assets/videos/now-converting-8a05d294385c14270a3662e01df5e50578cabcd2787123c18057ac06b101344c.png","job_state":null}'
|
|
46
|
-
recorded_at: Fri, 22 Jan 2021 09:42:37 GMT
|
|
47
|
-
recorded_with: VCR 6.0.0
|