vidispine 1.5.0 → 1.5.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fad78c8b766bf87d952d77f3a73a667d887b064f
|
4
|
+
data.tar.gz: eb13dce39554cdd7a0b4b1b00e212ecb7a5abe72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18a6979587fe7a8d85f90dcb248c7cb45558e6d8393a0064a921fa6d8000a7206b33b5f9d483f5bf5fee1ff7d074cfd6905e58b8849f3e9989361991efed13bf
|
7
|
+
data.tar.gz: 867ace58974e2d2615bfba584b00585010db7438aeff9dd6dc6c520944898be4990d7f3b9409fd1370e45662340e535885523501245c39526b244656d97a5c86
|
data/lib/vidispine/api/client.rb
CHANGED
@@ -9,7 +9,16 @@ module Vidispine
|
|
9
9
|
|
10
10
|
attr_accessor :http_client, :request, :response, :logger
|
11
11
|
|
12
|
+
attr_accessor :api_endpoint_prefix, :api_noauth_endpoint_prefix
|
13
|
+
|
12
14
|
def initialize(args = { })
|
15
|
+
|
16
|
+
# API Path
|
17
|
+
@api_endpoint_prefix = args.fetch(:api_endpoint_prefix, 'API')
|
18
|
+
|
19
|
+
# APInoAuth Path
|
20
|
+
@api_noauth_endpoint_prefix = args.fetch(:api_noauth_endpoint_prefix, 'APInoauth')
|
21
|
+
|
13
22
|
@http_client = HTTPClient.new(args)
|
14
23
|
@logger = http_client.logger
|
15
24
|
end
|
@@ -20,7 +29,7 @@ module Vidispine
|
|
20
29
|
request.client = self unless request.client
|
21
30
|
options ||= request.options
|
22
31
|
logger.warn { "Request is Missing Required Arguments: #{request.missing_required_arguments.inspect}" } unless request.missing_required_arguments.empty?
|
23
|
-
@response = http_client.
|
32
|
+
@response = http_client.build_and_send_request(request.http_method, { :path => request.path, :query => request.query, :body => request.body }, options)
|
24
33
|
end
|
25
34
|
|
26
35
|
def process_request_using_class(request_class, args, options = { })
|
@@ -137,7 +146,8 @@ module Vidispine
|
|
137
146
|
_args = _data[:arguments_out]
|
138
147
|
_args[:collection_id]
|
139
148
|
end
|
140
|
-
|
149
|
+
path = File.join(api_endpoint_prefix, "/collection/#{collection_id}")
|
150
|
+
http(:delete, path)
|
141
151
|
end
|
142
152
|
|
143
153
|
# @see http://apidoc.vidispine.com/4.2/ref/collection.html#retrieve-the-contents-of-a-collection
|
@@ -147,7 +157,8 @@ module Vidispine
|
|
147
157
|
_args = _data[:arguments_out]
|
148
158
|
_args[:collection_id]
|
149
159
|
end
|
150
|
-
|
160
|
+
path = File.join(api_endpoint_prefix, "/collection/#{collection_id}")
|
161
|
+
http(:get, path)
|
151
162
|
end
|
152
163
|
alias :collection :collection_get
|
153
164
|
|
@@ -158,7 +169,8 @@ module Vidispine
|
|
158
169
|
_args = _data[:arguments_out]
|
159
170
|
_args[:collection_id]
|
160
171
|
end
|
161
|
-
|
172
|
+
path = File.join(api_endpoint_prefix, "collection/#{collection_id}/item")
|
173
|
+
http(:get, path)
|
162
174
|
end
|
163
175
|
alias :collection_items :collection_items_get
|
164
176
|
|
@@ -170,7 +182,8 @@ module Vidispine
|
|
170
182
|
_args = _data[:arguments_out]
|
171
183
|
_args[:collection_id]
|
172
184
|
end
|
173
|
-
|
185
|
+
path = File.join(api_endpoint_prefix, "/collection/#{collection_id}/metadata")
|
186
|
+
http(:get, path)
|
174
187
|
end
|
175
188
|
|
176
189
|
# @see http://apidoc.vidispine.com/4.2/ref/collection.html#update-collection-metadata
|
@@ -317,7 +330,8 @@ module Vidispine
|
|
317
330
|
_args = _data[:arguments_out]
|
318
331
|
_args[:item_id]
|
319
332
|
end
|
320
|
-
|
333
|
+
path = File.join(api_endpoint_prefix, "/item/#{item_id}/collections")
|
334
|
+
http(:get, path)
|
321
335
|
end
|
322
336
|
alias :item_collections :item_collections_get
|
323
337
|
|
@@ -504,7 +518,8 @@ module Vidispine
|
|
504
518
|
query[:priority] = priority if priority
|
505
519
|
query[:jobmetadata] = job_metadata if job_metadata
|
506
520
|
|
507
|
-
|
521
|
+
path = File.join(api_endpoint_prefix, "/item/#{item_id}/shape")
|
522
|
+
http(:post, path, '', :query => query)
|
508
523
|
end
|
509
524
|
|
510
525
|
def item_sidecar_import(args = { }, options = { })
|
@@ -740,12 +755,14 @@ module Vidispine
|
|
740
755
|
def metadata_field_terse_schema(args = { }, options = { })
|
741
756
|
default_options = { :headers => { 'accept' => '*/*' } }
|
742
757
|
_options = default_options.merge(options)
|
743
|
-
|
758
|
+
path = File.join(api_endpoint_prefix, 'metadata-field/terse-schema')
|
759
|
+
http(:get, path, _options)
|
744
760
|
end
|
745
761
|
|
746
762
|
# @see http://apidoc.vidispine.com/4.2/ref/metadata/field.html#get--metadata-field
|
747
763
|
def metadata_fields_get(args = { }, options = { })
|
748
|
-
|
764
|
+
path = File.join(api_endpoint_prefix, 'metadata-field')
|
765
|
+
http(:get, path, options)
|
749
766
|
end
|
750
767
|
alias :metadata_fields :metadata_fields_get
|
751
768
|
|
@@ -936,7 +953,8 @@ module Vidispine
|
|
936
953
|
_args = _data[:arguments_out]
|
937
954
|
_args[:storage_id]
|
938
955
|
end
|
939
|
-
|
956
|
+
path = File.join(api_endpoint_prefix, "storage/#{storage_id ? "#{storage_id}/" : ''}rescan")
|
957
|
+
http(:post, path, '')
|
940
958
|
end
|
941
959
|
|
942
960
|
# @see http://apidoc.vidispine.com/4.2/ref/storage/storage.html#retrieve-list-of-storages
|
@@ -961,7 +979,7 @@ module Vidispine
|
|
961
979
|
alias :storages :storages_get
|
962
980
|
|
963
981
|
def version(args = { }, options = { })
|
964
|
-
http(:get, '
|
982
|
+
http(:get, File.join(api_endpoint_prefix, 'version'))
|
965
983
|
end
|
966
984
|
|
967
985
|
# @!endgroup API Endpoints
|
@@ -25,7 +25,7 @@ module Vidispine
|
|
25
25
|
|
26
26
|
DEFAULT_USERNAME = 'admin'
|
27
27
|
DEFAULT_PASSWORD = 'password'
|
28
|
-
DEFAULT_BASE_PATH = '
|
28
|
+
DEFAULT_BASE_PATH = '/'
|
29
29
|
|
30
30
|
DEFAULT_HEADER_CONTENT_TYPE = 'application/json; charset=utf-8'
|
31
31
|
DEFAULT_HEADER_ACCEPTS = 'application/json'
|
@@ -40,19 +40,21 @@ module Vidispine
|
|
40
40
|
|
41
41
|
logger.debug { "#{self.class.name}::#{__method__} Arguments: #{args.inspect}" }
|
42
42
|
|
43
|
-
@username = args[:username] || DEFAULT_USERNAME
|
44
|
-
@password = args[:password] || DEFAULT_PASSWORD
|
45
|
-
@authorization_header_value = args[:authorization_header_value]
|
46
|
-
|
47
43
|
@base_uri = args[:base_uri] || "http#{http.use_ssl? ? 's' : ''}://#{http.address}:#{http.port}"
|
48
|
-
@default_base_path = args
|
44
|
+
@default_base_path = args.fetch(:default_base_path, DEFAULT_BASE_PATH)
|
49
45
|
|
50
46
|
@default_query_data = args[:default_query_data] || { }
|
51
47
|
|
52
48
|
# @user_agent_default = "#{@hostname}:#{@username} Ruby SDK Version #{Vidispine::VERSION}"
|
53
49
|
|
54
|
-
@
|
55
|
-
@
|
50
|
+
@username = args[:username] || DEFAULT_USERNAME
|
51
|
+
@password = args[:password] || DEFAULT_PASSWORD
|
52
|
+
|
53
|
+
@authorization_header_key = args.fetch(:authorization_header_key, 'Authorization')
|
54
|
+
@authorization_header_value = args.fetch(:authorization_header_value,
|
55
|
+
%(Basic #{["#{username}:#{password}"]
|
56
|
+
.pack('m')
|
57
|
+
.delete("\r\n")}))
|
56
58
|
|
57
59
|
content_type = args[:content_type_header] ||= DEFAULT_HEADER_CONTENT_TYPE
|
58
60
|
accepts = args[:accepts_header] ||= args[:accept_header] || DEFAULT_HEADER_ACCEPTS
|
@@ -144,13 +146,26 @@ module Vidispine
|
|
144
146
|
end
|
145
147
|
end
|
146
148
|
|
149
|
+
# Compiles a full URI
|
150
|
+
#
|
147
151
|
# @param [String] path
|
148
152
|
# @param [Hash|String|Nil] query
|
153
|
+
# @param [Hash] options
|
154
|
+
# @option options [Hash] :default_query_data
|
155
|
+
# @option options [Hash] :default_base_path
|
156
|
+
#
|
149
157
|
# @return [URI]
|
150
|
-
def build_uri(path = '', query = nil)
|
151
|
-
|
158
|
+
def build_uri(path = '', query = nil, options = { })
|
159
|
+
_default_query_data = options.fetch(:default_query_data, default_query_data) || { }
|
160
|
+
_default_base_path = options.fetch(:default_base_path, default_base_path)
|
161
|
+
|
162
|
+
query = { } if query.nil?
|
163
|
+
|
164
|
+
_query = query.is_a?(Hash) ? (default_query_data.merge(query)).map { |k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.respond_to?(:to_s) ? v.to_s : v)}" }.join('&') : query
|
152
165
|
_path = "#{path}#{_query and _query.respond_to?(:empty?) and !_query.empty? ? "?#{_query}" : ''}"
|
153
|
-
|
166
|
+
_path = File.join(_default_base_path, _path) if _default_base_path
|
167
|
+
_path = File.join(base_uri, _path)
|
168
|
+
URI.parse(_path)
|
154
169
|
end
|
155
170
|
|
156
171
|
if RUBY_VERSION.start_with? '1.8.'
|
@@ -163,6 +178,8 @@ module Vidispine
|
|
163
178
|
end
|
164
179
|
end
|
165
180
|
|
181
|
+
# Builds the HTTP request
|
182
|
+
#
|
166
183
|
# @param [Symbol] method_name (:get)
|
167
184
|
# @param [Hash] args
|
168
185
|
# @option args [Hash] :headers ({})
|
@@ -171,7 +188,7 @@ module Vidispine
|
|
171
188
|
# @option args [Any] :body (nil)
|
172
189
|
# @param [Hash] options
|
173
190
|
# @option options [Hash] :default_request_headers (@default_request_headers)
|
174
|
-
def
|
191
|
+
def build_request(method_name = :get, args = { }, options = { })
|
175
192
|
headers = args[:headers] || options[:headers] || { }
|
176
193
|
path = args[:path] || ''
|
177
194
|
query = args[:query] || { }
|
@@ -182,102 +199,59 @@ module Vidispine
|
|
182
199
|
_default_request_headers ||= { }
|
183
200
|
_headers = _default_request_headers.merge(headers)
|
184
201
|
|
185
|
-
@uri = build_uri(path, query)
|
202
|
+
@uri = build_uri(path, query, options)
|
186
203
|
klass_name = request_method_name_to_class_name(method_name)
|
187
204
|
klass = Net::HTTP.const_get(klass_name)
|
188
205
|
|
189
|
-
|
206
|
+
_request = klass.new(@uri.request_uri, _headers)
|
190
207
|
|
191
|
-
if
|
208
|
+
if _request.request_body_permitted?
|
192
209
|
_body = (body and !body.is_a?(String)) ? JSON.generate(body) : body
|
193
210
|
logger.debug { "Processing Body: '#{_body}'" }
|
194
|
-
|
211
|
+
_request.body = _body if _body
|
195
212
|
end
|
196
213
|
|
197
|
-
|
214
|
+
_request
|
215
|
+
end
|
216
|
+
|
217
|
+
# First builds and then sends the HTTP request
|
218
|
+
#
|
219
|
+
# @param [Symbol] method_name (:get)
|
220
|
+
# @param [Hash] args
|
221
|
+
# @option args [Hash] :headers ({})
|
222
|
+
# @option args [String] :path ('')
|
223
|
+
# @option args [Hash] :query ({})
|
224
|
+
# @option args [Any] :body (nil)
|
225
|
+
#
|
226
|
+
# @param [Hash] options
|
227
|
+
# @option options [Hash] :default_request_headers (@default_request_headers)
|
228
|
+
def build_and_send_request(method_name = :get, args = { }, options = { })
|
229
|
+
_request = build_request(method_name, args, options)
|
230
|
+
send_request(_request)
|
198
231
|
end
|
199
232
|
|
200
233
|
def delete(path, options = { })
|
201
|
-
|
202
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
203
|
-
@uri = build_uri(File.join(base_path, path), query)
|
204
|
-
request = Net::HTTP::Delete.new(@uri.request_uri, default_request_headers)
|
205
|
-
send_request(request)
|
234
|
+
build_and_send_request(:delete, { :path => path }, options)
|
206
235
|
end
|
207
236
|
|
208
237
|
def get(path, options = { })
|
209
|
-
|
210
|
-
headers = options[:headers] || { }
|
211
|
-
_default_request_headers = options.fetch(:default_request_headers, default_request_headers) || { }
|
212
|
-
_headers = _default_request_headers.merge(headers)
|
213
|
-
|
214
|
-
query ||= options.fetch(:query, { })
|
215
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
216
|
-
@uri = build_uri(File.join(base_path, path), query)
|
217
|
-
request = Net::HTTP::Get.new(@uri.request_uri, _headers)
|
218
|
-
send_request(request)
|
238
|
+
build_and_send_request(:get, { :path => path }, options)
|
219
239
|
end
|
220
240
|
|
221
241
|
def head(path, options = { })
|
222
|
-
|
223
|
-
headers = options[:headers] || { }
|
224
|
-
_default_request_headers = options.fetch(:default_request_headers, default_request_headers) || { }
|
225
|
-
_headers = _default_request_headers.merge(headers)
|
226
|
-
|
227
|
-
query ||= options.fetch(:query, { })
|
228
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
229
|
-
@uri = build_uri(File.join(base_path, path), query)
|
230
|
-
|
231
|
-
request = Net::HTTP::Head.new(@uri.request_uri, _headers)
|
232
|
-
send_request(request)
|
242
|
+
build_and_send_request(:head, { :path => path }, options)
|
233
243
|
end
|
234
244
|
|
235
245
|
def options(path, options = { })
|
236
|
-
|
237
|
-
headers = options[:headers] || { }
|
238
|
-
_default_request_headers = options.fetch(:default_request_headers, default_request_headers) || { }
|
239
|
-
_headers = _default_request_headers.merge(headers)
|
240
|
-
|
241
|
-
query ||= options.fetch(:query, { })
|
242
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
243
|
-
@uri = build_uri(File.join(base_path, path), query)
|
244
|
-
request = Net::HTTP::Options.new(@uri.request_uri, _headers)
|
245
|
-
send_request(request)
|
246
|
+
build_and_send_request(:options, { :path => path }, options)
|
246
247
|
end
|
247
248
|
|
248
249
|
def put(path, body, options = { })
|
249
|
-
|
250
|
-
headers = options[:headers] || { }
|
251
|
-
_default_request_headers = options.fetch(:default_request_headers, default_request_headers) || { }
|
252
|
-
_headers = _default_request_headers.merge(headers)
|
253
|
-
|
254
|
-
query = options.fetch(:query, { })
|
255
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
256
|
-
@uri = build_uri(File.join(base_path, path), query)
|
257
|
-
request = Net::HTTP::Put.new(@uri.request_uri, _headers)
|
258
|
-
|
259
|
-
body = JSON.generate(body) if body and !body.is_a?(String)
|
260
|
-
|
261
|
-
request.body = body if body
|
262
|
-
send_request(request)
|
250
|
+
build_and_send_request(:put, { :path => path, :body => body }, options)
|
263
251
|
end
|
264
252
|
|
265
253
|
def post(path, body, options = { })
|
266
|
-
|
267
|
-
headers = options[:headers] || { }
|
268
|
-
_default_request_headers = options.fetch(:default_request_headers, default_request_headers) || { }
|
269
|
-
_headers = _default_request_headers.merge(headers)
|
270
|
-
|
271
|
-
query = options.fetch(:query, { })
|
272
|
-
base_path = options[:base_path] || ( path.start_with?(@default_base_path) ? '' : @default_base_path )
|
273
|
-
@uri = build_uri(File.join(base_path, path), query)
|
274
|
-
|
275
|
-
request = Net::HTTP::Post.new(@uri.request_uri, _headers)
|
276
|
-
|
277
|
-
body = JSON.generate(body) if body and !body.is_a?(String)
|
278
|
-
|
279
|
-
request.body = body if body
|
280
|
-
send_request(request)
|
254
|
+
build_and_send_request(:post, { :path => path, :body => body }, options)
|
281
255
|
end
|
282
256
|
|
283
257
|
# HTTPClient
|
@@ -9,7 +9,7 @@ module Vidispine
|
|
9
9
|
class BaseRequest
|
10
10
|
|
11
11
|
HTTP_METHOD = :get
|
12
|
-
HTTP_BASE_PATH = '/API/'
|
12
|
+
HTTP_BASE_PATH = '/API/' # Not used, using client.api_endpoint_prefix instead
|
13
13
|
HTTP_PATH = ''
|
14
14
|
HTTP_SUCCESS_CODE = '200'
|
15
15
|
|
@@ -150,7 +150,7 @@ module Vidispine
|
|
150
150
|
end
|
151
151
|
|
152
152
|
def base_path
|
153
|
-
@base_path ||= self.class::HTTP_BASE_PATH
|
153
|
+
@base_path ||= client.api_endpoint_prefix # self.class::HTTP_BASE_PATH
|
154
154
|
end
|
155
155
|
|
156
156
|
def body_arguments
|
data/lib/vidispine/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vidispine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Whitson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|