rest-client-wrapper 3.0.3 → 3.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 850533c6b1b1da4dafb1059762820eb8085d43544d934b3a6db1e925228017e8
4
- data.tar.gz: 8cafb6e965ae858ba748d970438faabdc3e92ec7a31c2c76f316f37d018caa4f
3
+ metadata.gz: a8dbb01db061166b6679d6664e71e9f7cc6b84c9644bca7f56cc231560bff32e
4
+ data.tar.gz: 0713c07b9fa1dd7f302a961f54b94362099a83af4787446f0b5a26826f7d2469
5
5
  SHA512:
6
- metadata.gz: 2201ea8ebc813d0437933446da66d4f735493bb9c2cfb71cfe92c2cb6d4581db4d7ae1f6e4c8f6d31a219f40d06433db4803e1a3dc8b48be297a93e2e9d1115d
7
- data.tar.gz: 971a6eb73f52120ecf6cf194b73e58a690e1449012bd50d450cc9b26952fd2037b2e10a66d2d886a695c57c8ff39ae60ae308f67c05f319649dae6975e8e0968
6
+ metadata.gz: '044878f94f5de478f4cb99314c77c01b95bfbb66ab50b42915b10c0a78a239a0acd3e3b7ab30f394fb1b7d4d253ca15c643f0923cce29cb4b0539d1885b8fb43'
7
+ data.tar.gz: b5aa02f91a1edc87fd2c4658dc4374231f865f0ca78dedb9fbe87353a7ee1909abbffeeb0b1612ae1e8e6c753c164c7a00ba6b01f10c8a0a7485d4a5bc612b92
@@ -36,13 +36,13 @@ module RestClientWrapper
36
36
  @config = { limit: limit }
37
37
  end
38
38
 
39
- def paginate(http_method:, uri:, query_params: {}, headers: {}, data: false)
39
+ def paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false)
40
40
  raise RestClientError.new("Client not set, unable to make API call", nil, nil) unless @rest_client
41
41
 
42
42
  query_params.reverse_merge!(@config)
43
43
  responses = []
44
44
  loop do
45
- response = @rest_client.make_request({ http_method: http_method, uri: uri, query_params: query_params, headers: headers })
45
+ response = @rest_client.make_request({ http_method: http_method, uri: uri, segment_params: segment_params, query_params: query_params, headers: headers })
46
46
  block_given? ? yield(response) : (responses << response)
47
47
  links = _pagination_links(response)
48
48
  break unless links.key?(:offset)
@@ -36,13 +36,13 @@ module RestClientWrapper
36
36
  @config = { limit: limit }
37
37
  end
38
38
 
39
- def paginate(http_method:, uri:, query_params: {}, headers: {}, data: false)
39
+ def paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false)
40
40
  raise RestClientError.new("Client not set, unable to make API call", nil, nil) unless @rest_client
41
41
 
42
42
  query_params.reverse_merge!(@config)
43
43
  responses = []
44
44
  loop do
45
- response = @rest_client.make_request({ http_method: http_method, uri: uri, query_params: query_params, headers: headers })
45
+ response = @rest_client.make_request({ http_method: http_method, uri: uri, segment_params: segment_params, query_params: query_params, headers: headers })
46
46
  block_given? ? yield(response) : (responses << response)
47
47
  links = _pagination_links(response)
48
48
  break unless links.key?(:offset)
@@ -36,14 +36,14 @@ module RestClientWrapper
36
36
  @config = { page: nil, per_page: per_page }
37
37
  end
38
38
 
39
- def paginate(http_method:, uri:, query_params: {}, headers: {}, data: false)
39
+ def paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false)
40
40
  raise RestClientError.new("Client not set, unable to make API call", nil, nil) unless @rest_client
41
41
 
42
42
  query_params.reverse_merge!(@config)
43
43
  responses = []
44
44
  loop.with_index(1) do |_, page|
45
45
  query_params[:page] = page
46
- response = @rest_client.make_request({ http_method: http_method, uri: uri, query_params: query_params, headers: headers })
46
+ response = @rest_client.make_request({ http_method: http_method, uri: uri, segment_params: segment_params, query_params: query_params, headers: headers })
47
47
  block_given? ? yield(response) : (responses << response)
48
48
  links = _pagination_links(response)
49
49
  break unless links.key?(:next)
@@ -36,14 +36,14 @@ module RestClientWrapper
36
36
  @config = { page: nil, per_page: per_page }
37
37
  end
38
38
 
39
- def paginate(http_method:, uri:, query_params: {}, headers: {}, data: false)
39
+ def paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false)
40
40
  raise RestClientError.new("Client not set, unable to make API call", nil, nil) unless @rest_client
41
41
 
42
42
  query_params.reverse_merge!(@config)
43
43
  responses = []
44
44
  loop.with_index(1) do |_, page|
45
45
  query_params[:page] = page
46
- response = @rest_client.make_request({ http_method: http_method, uri: uri, query_params: query_params, headers: headers })
46
+ response = @rest_client.make_request({ http_method: http_method, uri: uri, segment_params: segment_params, query_params: query_params, headers: headers })
47
47
  block_given? ? yield(response) : (responses << response)
48
48
  links = _pagination_links(response)
49
49
  break unless links.key?(:next)
@@ -28,7 +28,7 @@ module RestClientWrapper
28
28
  VALID_HTTP_METHODS = %i[get post put patch delete connect options trace].freeze
29
29
  HTTP_METHOD_FOR_JSON = %i[post put patch].freeze
30
30
 
31
- def initialize(http_method:, uri:, segment_params: {}, payload: {}, query_params: {}, headers: {}) # rubocop:disable Metrics/ParameterLists
31
+ def initialize(http_method:, uri:, segment_params: {}, payload: {}, query_params: {}, headers: {})
32
32
  @uri = uri
33
33
  self.headers = headers
34
34
  self.http_method = http_method
@@ -84,22 +84,21 @@ module RestClientWrapper
84
84
  end
85
85
  end
86
86
 
87
- def make_request(http_method:, uri:, payload: {}, query_params: {}, headers: {})
88
- parsed_uri = URI.parse(uri)
89
-
90
- raise ArgumentError, "URL host does not match config host of instance, unable to make API call" if parsed_uri.absolute? && @host.casecmp("#{ parsed_uri.scheme }://#{ parsed_uri.host }").nonzero?
87
+ def execute_paginated_request(request:, data: true)
88
+ return self.make_request_for_pages({ http_method: request.http_method, uri: request.uri, segment_params: request.segment_params, query_params: request.query_params, headers: request.headers, data: data }) # rubocop:disable Metrics/LineLength
89
+ end
91
90
 
92
- uri = parsed_uri.absolute? ? parsed_uri.path : uri
93
- request = Request.new({ http_method: http_method, uri: uri, payload: payload, query_params: query_params })
91
+ def make_request(http_method:, uri:, payload: {}, segment_params: {}, query_params: {}, headers: {})
92
+ request = Request.new({ http_method: http_method, uri: uri, payload: payload, segment_params: segment_params, query_params: query_params })
94
93
  request.headers = headers
95
94
  return self.execute({ request: request })
96
95
  end
97
96
 
98
- def make_request_for_pages(http_method:, uri:, query_params: {}, headers: {}, data: false)
97
+ def make_request_for_pages(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false)
99
98
  raise RestClientError.new("Paginator not set, unable to make API call", nil, nil) unless @paginator
100
99
 
101
100
  @paginator.rest_client ||= self
102
- return @paginator.paginate({ http_method: http_method, uri: uri, query_params: query_params, headers: headers, data: data })
101
+ return @paginator.paginate({ http_method: http_method, uri: uri, segment_params: segment_params, query_params: query_params, headers: headers, data: data })
103
102
  end
104
103
 
105
104
  private
@@ -121,7 +120,11 @@ module RestClientWrapper
121
120
  end
122
121
 
123
122
  def _build_uri(request)
124
- return format("#{ @host }#{ request.uri }", request.segment_params)
123
+ uri = format(request.uri, request.segment_params)
124
+ parsed_uri = URI.parse(uri)
125
+ raise ArgumentError, "URL host does not match config host of instance, unable to make API call" if parsed_uri.absolute? && @host.casecmp("#{ parsed_uri.scheme }://#{ parsed_uri.host }").nonzero?
126
+
127
+ return parsed_uri.absolute? ? uri : "#{ @host }#{ uri }"
125
128
  end
126
129
 
127
130
  def _validate_request(request)
@@ -18,6 +18,6 @@
18
18
 
19
19
  module RestClientWrapper
20
20
 
21
- VERSION = "3.0.3".freeze
21
+ VERSION = "3.1.0".freeze
22
22
 
23
23
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.summary = "Rest client wrapper"
31
31
  s.description = "Generic REST client wrapper"
32
32
  s.license = "GPL 3.0"
33
- s.required_ruby_version = ">= 2.4.0"
33
+ s.required_ruby_version = ">= 2.6.0"
34
34
 
35
35
  s.add_runtime_dependency "json", "~> 1.8", ">= 1.8.3"
36
36
  s.add_runtime_dependency "oauth2", "~> 1.2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-client-wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - University of Adelaide
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-28 00:00:00.000000000 Z
11
+ date: 2019-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -194,14 +194,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
194
194
  requirements:
195
195
  - - ">="
196
196
  - !ruby/object:Gem::Version
197
- version: 2.4.0
197
+ version: 2.6.0
198
198
  required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
203
  requirements: []
204
- rubygems_version: 3.0.4
204
+ rubygems_version: 3.0.3
205
205
  signing_key:
206
206
  specification_version: 4
207
207
  summary: Rest client wrapper