rest-client-wrapper 3.0.3 → 3.1.0

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: 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