ezapi 1.0.3 → 1.0.7

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
- SHA1:
3
- metadata.gz: f0962a3e1cd704e7372c2012eb7aac9cd3ad7347
4
- data.tar.gz: 4d7c95b461c471028caaed8cc72244a1a731453b
2
+ SHA256:
3
+ metadata.gz: 761da417fc008adaa056d5082dd32fd7bc801d24c6cc7f05eedf2d75efab3d9a
4
+ data.tar.gz: 90bac2c1a65e471dad2bc63be04c490059f6d3138d4245417e3daef341a7558f
5
5
  SHA512:
6
- metadata.gz: 550de5432b19cd0c3e130b45b07b5a45d45bf04e7bb9f4a2360700edd3d8d95057eaba43badfe808e584653831bc606b3d69d2add8c460347d93b3ec3454c62d
7
- data.tar.gz: 65983059d16a94236aeeef36533e39447fcd941eea57a259d65e16d438ae80ddd596f9ca1e5d1f6cd3f9d7ca0828f9075318a07054e93d4162b757189d0c4123
6
+ metadata.gz: 0363121ce4e4c8683571845357ad7da8247a2ddd51512c01a70e02470f098b0fa0b9b7c2bfd4d30849f779cfbf5421f30237210a635c25aacb2aaab0efcb4f39
7
+ data.tar.gz: fd981f6ff400eeba8eea46481e538e36c0d95a977a428221a849a302c8b6e4ce10ba1d733ef184b5868eca5d7d4ce0c7026389c579b8ce1317a98ac5575b4024
data/ezapi.gemspec CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency 'rest-client', '~> 2.0'
33
33
  spec.add_dependency 'activesupport', '>= 4.2'
34
+ spec.add_dependency 'nokogiri', '~> 1.6', '>= 1.6.8'
34
35
  spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.1'
35
36
  spec.add_development_dependency "rake", ">= 12.3.3"
36
37
  spec.add_development_dependency "rspec", "~> 3.0"
data/lib/ezapi/client.rb CHANGED
@@ -2,6 +2,7 @@ require 'rest-client'
2
2
  require 'json'
3
3
  require 'base64'
4
4
  require 'uri'
5
+ require 'nokogiri'
5
6
 
6
7
  module EZApi
7
8
  module Client
@@ -24,20 +25,31 @@ module EZApi
24
25
  end
25
26
 
26
27
  def request(full_url, method, params={}, headers=self.request_headers, request_arguments={})
27
- default_request = {method: method, url: full_url, payload: params.to_json, headers: headers}
28
+ response = raw_request(full_url, method, params, headers, request_arguments)
28
29
 
29
30
  begin
30
- response = RestClient::Request.execute(default_request.merge(request_arguments))
31
- JSON.parse(response) unless response.empty?
31
+ if response.headers && response.headers[:content_type] == "application/xml"
32
+ Nokogiri::XML(response.body)
33
+ else
34
+ JSON.parse(response.body) unless response.empty?
35
+ end
32
36
  rescue JSON::ParserError => e
33
37
  nil
38
+ end
39
+ end
40
+
41
+ def raw_request(full_url, method, params={}, headers=self.request_headers, request_arguments={})
42
+ params = params.is_a?(Hash) ? params.to_json : params
43
+ default_request = {method: method, url: full_url, payload: params, headers: headers}
44
+ begin
45
+ RestClient::Request.execute(default_request.merge(request_arguments))
34
46
  rescue RestClient::ExceptionWithResponse => e
35
47
  if response_code = e.http_code and response_body = e.http_body
36
48
  handle_api_error(response_code, response_body)
37
49
  else
38
50
  handle_restclient_error(e)
39
51
  end
40
- rescue RestClient::Exception, Errno::ECONNREFUSED, SocketError => e
52
+ rescue RestClient::Exception, Errno::ECONNREFUSED, SocketError, Timeout::Error => e
41
53
  handle_restclient_error(e)
42
54
  end
43
55
  end
data/lib/ezapi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module EZApi
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ezapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-27 00:00:00.000000000 Z
11
+ date: 2021-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -38,6 +38,26 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.6.8
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.6'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.6.8
41
61
  - !ruby/object:Gem::Dependency
42
62
  name: bundler
43
63
  requirement: !ruby/object:Gem::Requirement
@@ -145,8 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
165
  - !ruby/object:Gem::Version
146
166
  version: '0'
147
167
  requirements: []
148
- rubyforge_project:
149
- rubygems_version: 2.6.14
168
+ rubygems_version: 3.0.6
150
169
  signing_key:
151
170
  specification_version: 4
152
171
  summary: Easily Communicate with APIs