data-com-api 0.1.4 → 0.1.5
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 +8 -8
- data/lib/data-com-api/client.rb +7 -1
- data/lib/data-com-api/errors.rb +12 -2
- data/lib/data-com-api/version.rb +1 -1
- data/spec/integration/client_spec.rb +16 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWY4NzZiOGVlYjg0MDJkM2ZjNjMyZDIxMzM5Zjg2ZWVlN2RiY2Y0ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGE3NGQ3NGRmNWYwYjFlYjU0ODgwYjkwNDhkODY2NzJlNjgxMjIzZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGQ5YmQ0NTgyNDYxN2QwMDhjMTY1ZDE3MDdlNzJlNWIwMmY1YmNlZTMzZGY5
|
10
|
+
YmQ3ZDQ5ZThjN2M1NjhjNDBiYzJiMzRiYmE1YjViMDZkNmUyMzkxMDY1MGVj
|
11
|
+
ZmIwODAwNGQ1ZDUzMWZhNWEwMmYzMTNmODNiNDU3NjQxNzFkZDU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzU5NzYxYzAwZDkyMGQ3OGZhNTIxZTVjZmU4ZDAzMWNjZGU4YWIxZGVhYjIy
|
14
|
+
MzJkNDU0NzE1NjAxZDhhMTE4MjY2ZjU1NDE0MzIwY2UxNmFmY2NjODRhOGRm
|
15
|
+
YzVjMjQyMDcyYTgxZjliZGIzMGU5MzNhZWM0OTY3NjcyZWVjOWI=
|
data/lib/data-com-api/client.rb
CHANGED
@@ -227,7 +227,13 @@ module DataComApi
|
|
227
227
|
private
|
228
228
|
|
229
229
|
def json_or_raise(json_str)
|
230
|
-
json =
|
230
|
+
json = nil
|
231
|
+
|
232
|
+
if json_str == DataComApi::Error::API_LIMIT_EXCEEDED_MSG
|
233
|
+
raise ApiLimitExceededError, json_str
|
234
|
+
else
|
235
|
+
json = JSON.parse(json_str)
|
236
|
+
end
|
231
237
|
|
232
238
|
if json.kind_of? Array
|
233
239
|
error = json.first
|
data/lib/data-com-api/errors.rb
CHANGED
@@ -4,8 +4,9 @@ module DataComApi
|
|
4
4
|
|
5
5
|
class Error < StandardError
|
6
6
|
|
7
|
-
API_HTTP_STATUS_CODE
|
8
|
-
API_ERROR_CODE
|
7
|
+
API_HTTP_STATUS_CODE = 0
|
8
|
+
API_ERROR_CODE = 'no error code provided'.freeze
|
9
|
+
API_LIMIT_EXCEEDED_MSG = 'API plan limit exceeded'.freeze
|
9
10
|
|
10
11
|
attr_reader :http_status_code
|
11
12
|
attr_reader :api_stack_trace
|
@@ -93,4 +94,13 @@ module DataComApi
|
|
93
94
|
API_ERROR_CODE = 'NOT_AVAILABLE'.freeze
|
94
95
|
end
|
95
96
|
|
97
|
+
class ApiLimitExceededError < Error
|
98
|
+
# This info are not true, there is no error code nor status code, but
|
99
|
+
# I added those to keep consistency.
|
100
|
+
# The limit exceeded error is returned as "API plan limit exceeded" plain
|
101
|
+
# string
|
102
|
+
API_HTTP_STATUS_CODE = 404
|
103
|
+
API_ERROR_CODE = 'API_LIMIT_EXCEEDED'.freeze
|
104
|
+
end
|
105
|
+
|
96
106
|
end
|
data/lib/data-com-api/version.rb
CHANGED
@@ -8,6 +8,7 @@ require 'data-com-api/client'
|
|
8
8
|
require 'data-com-api/company_contact_count/department'
|
9
9
|
require 'data-com-api/company_contact_count/level'
|
10
10
|
require 'data-com-api/contact'
|
11
|
+
require 'data-com-api/errors'
|
11
12
|
|
12
13
|
describe DataComApi::Client do
|
13
14
|
|
@@ -15,6 +16,21 @@ describe DataComApi::Client do
|
|
15
16
|
|
16
17
|
describe "#search_contact" do
|
17
18
|
|
19
|
+
it "raises ApiLimitExceededError when API limit exceeded text is returned" do
|
20
|
+
stub_request(
|
21
|
+
:get,
|
22
|
+
URI.join(
|
23
|
+
DataComApi::Client.base_uri, DataComApi::ApiURI.search_contact
|
24
|
+
).to_s
|
25
|
+
).with(query: hash_including({})).to_return(
|
26
|
+
body: DataComApi::Error::API_LIMIT_EXCEEDED_MSG
|
27
|
+
)
|
28
|
+
|
29
|
+
expect{
|
30
|
+
client.search_contact.size
|
31
|
+
}.to raise_error DataComApi::ApiLimitExceededError
|
32
|
+
end
|
33
|
+
|
18
34
|
it "has records when searched with no params" do
|
19
35
|
DataComApiStubRequests.stub_search_contact(
|
20
36
|
total_hits: 10
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: data-com-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fire-Dragon-DoL
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|