data-com-api 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|