workato-connector-sdk 1.3.8 → 1.3.9
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/VERSION +1 -1
- data/lib/workato/connector/sdk/errors.rb +2 -0
- data/lib/workato/connector/sdk/request.rb +42 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc61d331c5e90aefecdbb3f336ae69937bb29b68f7bd7719d81bcdb5c3c86bd9
|
4
|
+
data.tar.gz: b229cca847d63f6e209f84d10e82aa63fda5b87408f4af80c0c5608f2bc42654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c235fca45159067ee8a175893692d739b4ad484f25538a6791e2a4f09fec895e719b6cbfb2159be790427f29226cea9be018d460679cafff1aa81416d9f8e14
|
7
|
+
data.tar.gz: 95d48a7b47e8dde25b95491594914a1f3a4e932c92edbaa94c98f6a80621b4c536b259465f46af21f5d634a1a18c021b9453e4b44b9f0ea0522a13db9a239ad7
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.9
|
@@ -21,12 +21,14 @@ module Workato
|
|
21
21
|
|
22
22
|
using BlockInvocationRefinements
|
23
23
|
|
24
|
+
ALLOWED_URI_TYPES = [URI::Generic, String].freeze
|
25
|
+
private_constant :ALLOWED_URI_TYPES
|
26
|
+
|
24
27
|
def initialize(uri, method: 'GET', connection: nil, action: nil)
|
25
28
|
super(nil)
|
26
29
|
@uri = uri
|
27
30
|
@method = method
|
28
31
|
@connection = connection
|
29
|
-
@base_uri = connection&.base_uri(connection&.settings || {})
|
30
32
|
@action = action
|
31
33
|
@headers = {}
|
32
34
|
@case_sensitive_headers = {}
|
@@ -273,6 +275,8 @@ module Workato
|
|
273
275
|
begin
|
274
276
|
request = RestClientRequest.new(rest_request_params)
|
275
277
|
response = execute_request(request)
|
278
|
+
rescue URI::InvalidURIError => e
|
279
|
+
Kernel.raise(InvalidURIError, e.message)
|
276
280
|
rescue RestClient::Unauthorized => e
|
277
281
|
Kernel.raise e unless @digest_auth
|
278
282
|
|
@@ -331,8 +335,18 @@ module Workato
|
|
331
335
|
end
|
332
336
|
|
333
337
|
def build_url
|
334
|
-
uri = if @base_uri
|
335
|
-
|
338
|
+
uri = if (base_uri = @connection&.base_uri)
|
339
|
+
unless valid_uri?(@uri)
|
340
|
+
raise_invalid_uri_error(
|
341
|
+
"Expected String or URI as request URL, got: #{@uri.class.name}"
|
342
|
+
)
|
343
|
+
end
|
344
|
+
unless valid_uri?(base_uri)
|
345
|
+
raise_invalid_uri_error(
|
346
|
+
"Expected String or URI as output of base_uri lambda, got: #{base_uri.class.name}"
|
347
|
+
)
|
348
|
+
end
|
349
|
+
merge_uris(base_uri, @uri)
|
336
350
|
else
|
337
351
|
URI.parse(@uri)
|
338
352
|
end
|
@@ -357,6 +371,14 @@ module Workato
|
|
357
371
|
uri.to_s
|
358
372
|
end
|
359
373
|
|
374
|
+
def valid_uri?(path)
|
375
|
+
ALLOWED_URI_TYPES.any? { |type| path.is_a?(type) }
|
376
|
+
end
|
377
|
+
|
378
|
+
def raise_invalid_uri_error(message)
|
379
|
+
Kernel.raise(InvalidURIError, message)
|
380
|
+
end
|
381
|
+
|
360
382
|
def merge_uris(uri1, uri2)
|
361
383
|
(uri1.is_a?(::String) ? URI.parse(uri1) : uri1).merge(uri2)
|
362
384
|
end
|
@@ -549,6 +571,23 @@ module Workato
|
|
549
571
|
net.extra_chain_cert = ssl_extra_chain_cert if ssl_extra_chain_cert
|
550
572
|
net
|
551
573
|
end
|
574
|
+
|
575
|
+
private
|
576
|
+
|
577
|
+
def parse_url_with_auth!(url)
|
578
|
+
# Fix Ruby 2.7 vs 3.0 incompatibility
|
579
|
+
# In ruby 2.7 URI.parse("http:///foo/bar").hostname returns nil
|
580
|
+
# In ruby 3.0 URI.parse("http:///foo/bar").hostname returns ""
|
581
|
+
uri = URI.parse(url)
|
582
|
+
|
583
|
+
if uri.hostname.nil? || uri.hostname.empty?
|
584
|
+
raise URI::InvalidURIError, "bad URI(no host provided): #{url}"
|
585
|
+
end
|
586
|
+
|
587
|
+
super
|
588
|
+
rescue ArgumentError => e
|
589
|
+
raise URI::InvalidURIError, "Invalid URL: #{e.message}"
|
590
|
+
end
|
552
591
|
end
|
553
592
|
|
554
593
|
private_constant :RestClientRequest
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workato-connector-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Abolmasov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|