workato-connector-sdk 1.3.7 → 1.3.9

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
  SHA256:
3
- metadata.gz: 49aa4824f123bf7b6601d8b2a341fee4c06f2b51142ddbcb6a86d59199018265
4
- data.tar.gz: be9fedf954b6dac11edd5b41458b5a8a649e388e4407ee044521912e9eccbfd5
3
+ metadata.gz: dc61d331c5e90aefecdbb3f336ae69937bb29b68f7bd7719d81bcdb5c3c86bd9
4
+ data.tar.gz: b229cca847d63f6e209f84d10e82aa63fda5b87408f4af80c0c5608f2bc42654
5
5
  SHA512:
6
- metadata.gz: 56a7885ec1f441f2df917eebb703632825c3a978252d25cbb74ad683c41c9a2ca9625cec83f7a9dadb2b8a046f7da5d3ff8445ec192118c15ad208f653d6e23d
7
- data.tar.gz: 0262d744fcc2c96fa6bf602ebd0c18b0b52165833e66a93b52dea7cdbd5d1c7c5e6b6731aa9c029369738634f1f0f4426866637b577af486fc33075ac0470df5
6
+ metadata.gz: 5c235fca45159067ee8a175893692d739b4ad484f25538a6791e2a4f09fec895e719b6cbfb2159be790427f29226cea9be018d460679cafff1aa81416d9f8e14
7
+ data.tar.gz: 95d48a7b47e8dde25b95491594914a1f3a4e932c92edbaa94c98f6a80621b4c536b259465f46af21f5d634a1a18c021b9453e4b44b9f0ea0522a13db9a239ad7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.7
1
+ 1.3.9
@@ -14,6 +14,8 @@ module Workato
14
14
 
15
15
  InvalidDefinitionError = Class.new(Error)
16
16
 
17
+ InvalidURIError = Class.new(Error)
18
+
17
19
  class UnexpectedMethodDefinitionError < InvalidDefinitionError
18
20
  attr_reader :name
19
21
  attr_reader :definition
@@ -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
- merge_uris(@base_uri, @uri)
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
@@ -72,7 +72,7 @@ module Workato
72
72
  end
73
73
 
74
74
  def transliterate(replacement = '?')
75
- I18n.transliterate(self, replacement)
75
+ I18n.transliterate(self, replacement: replacement)
76
76
  end
77
77
 
78
78
  def labelize(*acronyms)
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workato-connector-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
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-10-27 00:00:00.000000000 Z
11
+ date: 2023-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: aws-sigv4
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +104,22 @@ dependencies:
98
104
  name: i18n
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
- - - '='
107
+ - - ">="
102
108
  - !ruby/object:Gem::Version
103
109
  version: 0.9.5
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '2.0'
104
113
  type: :runtime
105
114
  prerelease: false
106
115
  version_requirements: !ruby/object:Gem::Requirement
107
116
  requirements:
108
- - - '='
117
+ - - ">="
109
118
  - !ruby/object:Gem::Version
110
119
  version: 0.9.5
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: '2.0'
111
123
  - !ruby/object:Gem::Dependency
112
124
  name: jwt
113
125
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +207,9 @@ dependencies:
195
207
  requirement: !ruby/object:Gem::Requirement
196
208
  requirements:
197
209
  - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '1.4'
212
+ - - ">="
198
213
  - !ruby/object:Gem::Version
199
214
  version: 1.4.3
200
215
  type: :runtime
@@ -202,6 +217,9 @@ dependencies:
202
217
  version_requirements: !ruby/object:Gem::Requirement
203
218
  requirements:
204
219
  - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.4'
222
+ - - ">="
205
223
  - !ruby/object:Gem::Version
206
224
  version: 1.4.3
207
225
  - !ruby/object:Gem::Dependency