rest-client-wrapper 3.2.1 → 4.0.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: 672349eafd0d9487fd074d58761e4aa8de061bf370d165359d8a6378a0911af0
4
- data.tar.gz: 7445c62040064f225ed52d81e0413e3f0cad2bde4843476a2ec486dbe5a92bb9
3
+ metadata.gz: 8b402585e6034813c0b9d3fa1af05e943ca106f7cdcae0b0f6e205e822250304
4
+ data.tar.gz: 64390499b6848d1dab15c57a723b9b02bded8eedf2b5f3650e8f3f8ed789f3f2
5
5
  SHA512:
6
- metadata.gz: 40477e74390f5cbc3f2fda466baf98cdaed8ce462508c1a40e881f190fba85449ef5dd1fc8c378bf2ab99a3dcefda97ea1bf19f2a94a78bb7206137aa1d3ff38
7
- data.tar.gz: 9015cd901cfaa23fccd76f1f7b39223ed28f1c9a0111b10c080192a32cd0a0f2385c4f798b4a174966d991b2461fb0296a7ea673e1a2563b4067de463eb33b01
6
+ metadata.gz: 8769b420a7bfe481450e0665a3f4899564dff302769bf050f7d512564b828479529a5a3859dd8fb581d714e8b4452601e102a0d28226771bc57ece9f16b4cc88
7
+ data.tar.gz: 46a6573d732840fe66240d6773db7f07ecd274d70b3a7b794b44d1bb31eca85fe514a050726571afe47538b8b4a16b260013c872b20283eb52c515df47829d6f
@@ -29,9 +29,9 @@ module RestClientWrapper
29
29
 
30
30
  include Auth
31
31
 
32
- def initialize(username:, password:)
33
- @username = username
34
- @password = password
32
+ def initialize(**config)
33
+ @username = config[:username]
34
+ @password = config[:password]
35
35
  end
36
36
 
37
37
  def generate_auth
@@ -32,9 +32,9 @@ module RestClientWrapper
32
32
 
33
33
  TYPE = %i[header query_param].freeze
34
34
 
35
- def initialize(type:, auth_param:)
36
- self.type = type
37
- self.auth_param = auth_param
35
+ def initialize(**config)
36
+ self.type = config[:type]
37
+ self.auth_param = config[:auth_param]
38
38
  end
39
39
 
40
40
  def generate_auth
@@ -36,9 +36,9 @@ module RestClientWrapper
36
36
 
37
37
  @@api_client = {} # rubocop:disable Style/ClassVars
38
38
 
39
- def initialize(site:, token_url_path:, client_id:, client_secret:)
39
+ def initialize(client_id:, **config)
40
40
  @client_id = client_id
41
- @@api_client[client_id] = { lock: Mutex.new, settings: { site: site, token_url_path: token_url_path, client_secret: client_secret }, access_token: nil, refresh_token: nil }
41
+ @@api_client[client_id] = { lock: Mutex.new, settings: config, access_token: nil, refresh_token: nil }
42
42
  end
43
43
 
44
44
  def tokens
@@ -55,7 +55,7 @@ module RestClientWrapper
55
55
  private
56
56
 
57
57
  def _pagination_links(response)
58
- next_l = response&.body.class == Hash ? response&.body&.[](:next) || "" : ""
58
+ next_l = response&.body.instance_of?(Hash) ? response&.body&.[](:next) || "" : ""
59
59
  next_h = Rack::Utils.parse_query(URI.parse(next_l)&.query)
60
60
  return next_h.symbolize_keys!
61
61
  end
@@ -21,20 +21,20 @@ module RestClientWrapper
21
21
  # Request
22
22
  class Request
23
23
 
24
- attr_reader :uri, :headers, :http_method, :payload, :segment_params, :query_params
25
- attr_writer :uri
24
+ attr_accessor :uri
25
+ attr_reader :headers, :http_method, :payload, :segment_params, :query_params
26
26
 
27
27
  DEFAULT_CONTENT_TYPE = { content_type: :json, accept: :json }.freeze # default content type for post and put requests
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: {})
32
- @uri = uri
33
- self.headers = headers
34
- self.http_method = http_method
35
- self.segment_params = segment_params
36
- self.payload = payload
37
- self.query_params = query_params
31
+ def initialize(**params)
32
+ @uri = params[:uri]
33
+ self.headers = params[:headers].nil? ? {} : params[:headers]
34
+ self.http_method = params[:http_method]
35
+ self.segment_params = params[:segment_params].nil? ? {} : params[:segment_params]
36
+ self.payload = params[:payload].nil? ? {} : params[:payload]
37
+ self.query_params = params[:query_params].nil? ? {} : params[:query_params]
38
38
  end
39
39
 
40
40
  def http_method=(http_method)
@@ -41,7 +41,7 @@ module RestClientWrapper
41
41
  }
42
42
  }.freeze
43
43
 
44
- def initialize(host:, config: {})
44
+ def initialize(host:, **config)
45
45
  @host = host
46
46
  @config = config
47
47
  @retry_configs = {}.reverse_merge(DEFAULT_CONFIG[:retries])
@@ -129,7 +129,7 @@ module RestClientWrapper
129
129
 
130
130
  def _validate_request(request)
131
131
  # Regex to find segments in uri with the pattern <segment_param>
132
- url_segments = request.uri.scan(/\<(.*?)\>/).flatten
132
+ url_segments = request.uri.scan(/<(.*?)>/).flatten
133
133
  url_segments.each do |url_segment|
134
134
  raise ArgumentError, "Segment parameter not provided for #{ url_segment }. URI #{ request.uri }" unless request.segment_params.include? url_segment.to_sym
135
135
  end
@@ -156,8 +156,8 @@ module RestClientWrapper
156
156
  return { ok: true } if response.body == "ok".to_json # Handle special case for Echo delete responses
157
157
 
158
158
  return JSON.parse(response.body, { object_class: Hash, symbolize_names: true })
159
- rescue StandardError => e
160
- raise RestClientError.new("Response could not be parsed as JSON", response, e)
159
+ rescue StandardError
160
+ return response.body
161
161
  end
162
162
 
163
163
  def _reset_retries
@@ -18,6 +18,6 @@
18
18
 
19
19
  module RestClientWrapper
20
20
 
21
- VERSION = "3.2.1".freeze
21
+ VERSION = "4.0.0".freeze
22
22
 
23
23
  end
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.2.1
4
+ version: 4.0.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: 2020-11-09 00:00:00.000000000 Z
11
+ date: 2021-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  requirements: []
198
- rubygems_version: 3.0.3
198
+ rubygems_version: 3.0.9
199
199
  signing_key:
200
200
  specification_version: 4
201
201
  summary: Rest client wrapper