clearbit 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/clearbit.rb +2 -0
- data/lib/clearbit/autocomplete.rb +14 -0
- data/lib/clearbit/enrichment.rb +1 -1
- data/lib/clearbit/enrichment/company.rb +5 -5
- data/lib/clearbit/enrichment/person.rb +5 -7
- data/lib/clearbit/enrichment/person_company.rb +4 -4
- data/lib/clearbit/logo.rb +1 -1
- data/lib/clearbit/prospector.rb +23 -1
- data/lib/clearbit/resource.rb +8 -1
- data/lib/clearbit/risk.rb +18 -0
- data/lib/clearbit/version.rb +1 -1
- data/spec/lib/clearbit/enrichment_spec.rb +7 -7
- data/spec/lib/clearbit/logo_spec.rb +43 -0
- data/spec/lib/clearbit/webhook_spec.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d45b4f5a8d2d1d16d5acce2990114ea4128e859c
|
4
|
+
data.tar.gz: cc056730612d1079db10d3c05f8c9ecf375a5674
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edd484f91784a5577e09a7aa287bb03f027d6cc695bb9517c1b7a1f391d1aebc31fcb9be9ba5e5980f81256fa1a486dd245db23e85352d9cba8a13694a61910a
|
7
|
+
data.tar.gz: fae4a7aa0a63a36caae474e974cc22a0798827baf3951e0e9ca3a8694587cdea898432d48328e6859127fe38ac0364b79646ee30f16db2976e2bdc38605487ec
|
data/lib/clearbit.rb
CHANGED
@@ -18,6 +18,7 @@ module Clearbit
|
|
18
18
|
key || raise('Clearbit.key not set')
|
19
19
|
end
|
20
20
|
|
21
|
+
autoload :Autocomplete, 'clearbit/autocomplete'
|
21
22
|
autoload :Base, 'clearbit/base'
|
22
23
|
autoload :Enrichment, 'clearbit/enrichment'
|
23
24
|
autoload :Discovery, 'clearbit/discovery'
|
@@ -26,6 +27,7 @@ module Clearbit
|
|
26
27
|
autoload :Pending, 'clearbit/pending'
|
27
28
|
autoload :Prospector, 'clearbit/prospector'
|
28
29
|
autoload :Resource, 'clearbit/resource'
|
30
|
+
autoload :Risk, 'clearbit/risk'
|
29
31
|
autoload :Watchlist, 'clearbit/watchlist'
|
30
32
|
autoload :Webhook, 'clearbit/webhook'
|
31
33
|
|
data/lib/clearbit/enrichment.rb
CHANGED
@@ -2,15 +2,15 @@ module Clearbit
|
|
2
2
|
module Enrichment
|
3
3
|
class Company < Base
|
4
4
|
endpoint 'https://company.clearbit.com'
|
5
|
-
path '/
|
5
|
+
path '/v2/companies'
|
6
6
|
|
7
7
|
def self.find(values)
|
8
8
|
unless values.is_a?(Hash)
|
9
|
-
values = {:
|
9
|
+
values = { id: values }
|
10
10
|
end
|
11
11
|
|
12
|
-
if
|
13
|
-
response = get(uri(:
|
12
|
+
if values.key?(:domain)
|
13
|
+
response = get(uri(:find), values)
|
14
14
|
elsif id = values.delete(:id)
|
15
15
|
response = get(id, values)
|
16
16
|
else
|
@@ -30,7 +30,7 @@ module Clearbit
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def flag!(attrs = {})
|
33
|
-
self.class.post(uri(
|
33
|
+
self.class.post(uri(:flag), attrs)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -2,19 +2,17 @@ module Clearbit
|
|
2
2
|
module Enrichment
|
3
3
|
class Person < Base
|
4
4
|
endpoint 'https://person.clearbit.com'
|
5
|
-
path '/
|
5
|
+
path '/v2/people'
|
6
6
|
|
7
7
|
def self.find(values)
|
8
8
|
unless values.is_a?(Hash)
|
9
|
-
values = {:
|
9
|
+
values = { id: values }
|
10
10
|
end
|
11
11
|
|
12
|
-
if
|
13
|
-
response = get(uri(:
|
14
|
-
|
12
|
+
if values.key?(:email)
|
13
|
+
response = get(uri(:find), values)
|
15
14
|
elsif id = values.delete(:id)
|
16
15
|
response = get(id, values)
|
17
|
-
|
18
16
|
else
|
19
17
|
raise ArgumentError, 'Invalid values'
|
20
18
|
end
|
@@ -33,7 +31,7 @@ module Clearbit
|
|
33
31
|
end
|
34
32
|
|
35
33
|
def flag!(attrs = {})
|
36
|
-
self.class.post(uri(
|
34
|
+
self.class.post(uri(:flag), attrs)
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|
@@ -2,15 +2,15 @@ module Clearbit
|
|
2
2
|
module Enrichment
|
3
3
|
class PersonCompany < Base
|
4
4
|
endpoint 'https://person.clearbit.com'
|
5
|
-
path '/
|
5
|
+
path '/v2/combined'
|
6
6
|
|
7
7
|
def self.find(values)
|
8
8
|
unless values.is_a?(Hash)
|
9
|
-
values = {:
|
9
|
+
values = { email: values }
|
10
10
|
end
|
11
11
|
|
12
|
-
if
|
13
|
-
response = get(uri(:
|
12
|
+
if values.key?(:email)
|
13
|
+
response = get(uri(:find), values)
|
14
14
|
else
|
15
15
|
raise ArgumentError, 'Invalid values'
|
16
16
|
end
|
data/lib/clearbit/logo.rb
CHANGED
@@ -20,7 +20,7 @@ module Clearbit
|
|
20
20
|
encoded_params = URI.encode_www_form(params)
|
21
21
|
|
22
22
|
if domain = values.delete(:domain)
|
23
|
-
raise ArgumentError, 'Invalid domain' unless domain =~ /^([a-z0-9]+)*\.[a-z]{2,
|
23
|
+
raise ArgumentError, 'Invalid domain' unless domain =~ /^[a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,}$/
|
24
24
|
if encoded_params.empty?
|
25
25
|
"#{ENDPOINT}/#{domain}"
|
26
26
|
else
|
data/lib/clearbit/prospector.rb
CHANGED
@@ -7,14 +7,36 @@ module Clearbit
|
|
7
7
|
self.new get('search', values)
|
8
8
|
end
|
9
9
|
|
10
|
+
def self.find(values)
|
11
|
+
unless values.is_a?(Hash)
|
12
|
+
values = {:id => values}
|
13
|
+
end
|
14
|
+
|
15
|
+
if id = values.delete(:id)
|
16
|
+
response = get(id, values)
|
17
|
+
|
18
|
+
else
|
19
|
+
raise ArgumentError, 'Invalid values'
|
20
|
+
end
|
21
|
+
|
22
|
+
self.new(response)
|
23
|
+
rescue Nestful::ResourceNotFound
|
24
|
+
end
|
25
|
+
|
26
|
+
class << self
|
27
|
+
alias_method :[], :find
|
28
|
+
end
|
29
|
+
|
10
30
|
def email
|
11
31
|
email_response.email
|
12
32
|
end
|
13
33
|
|
14
|
-
def verified
|
34
|
+
def verified
|
15
35
|
email_response.verified
|
16
36
|
end
|
17
37
|
|
38
|
+
alias_method :verified?, :verified
|
39
|
+
|
18
40
|
protected
|
19
41
|
|
20
42
|
def email_response
|
data/lib/clearbit/resource.rb
CHANGED
@@ -18,7 +18,7 @@ module Clearbit
|
|
18
18
|
@options ||= {}
|
19
19
|
@options.merge!(value) if value
|
20
20
|
|
21
|
-
if superclass.respond_to?(:options)
|
21
|
+
if superclass <= Resource && superclass.respond_to?(:options)
|
22
22
|
Nestful::Helpers.deep_merge(superclass.options, @options)
|
23
23
|
else
|
24
24
|
@options
|
@@ -61,6 +61,13 @@ module Clearbit
|
|
61
61
|
options.merge!(request_options)
|
62
62
|
end
|
63
63
|
|
64
|
+
if key = options.delete(:key)
|
65
|
+
options.merge(
|
66
|
+
auth_type: :bearer,
|
67
|
+
password: key
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
64
71
|
[params, options]
|
65
72
|
end
|
66
73
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Clearbit
|
2
|
+
class Risk < Base
|
3
|
+
endpoint 'https://risk.clearbit.com'
|
4
|
+
path '/v1'
|
5
|
+
|
6
|
+
def self.calculate(values = {})
|
7
|
+
self.new get('calculate', values)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.confirmed(values = {})
|
11
|
+
self.new post('confirmed', values)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.flag(values = {})
|
15
|
+
self.new post('flag', values)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/clearbit/version.rb
CHANGED
@@ -12,7 +12,7 @@ describe Clearbit::Enrichment do
|
|
12
12
|
company: nil
|
13
13
|
}
|
14
14
|
|
15
|
-
stub_request(:get,
|
15
|
+
stub_request(:get, 'https://person.clearbit.com/v2/combined/find?email=test@example.com').
|
16
16
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
17
17
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
18
18
|
|
@@ -25,7 +25,7 @@ describe Clearbit::Enrichment do
|
|
25
25
|
company: nil
|
26
26
|
}
|
27
27
|
|
28
|
-
stub_request(:get,
|
28
|
+
stub_request(:get, 'https://person-stream.clearbit.com/v2/combined/find?email=test@example.com').
|
29
29
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
30
30
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
31
31
|
|
@@ -38,7 +38,7 @@ describe Clearbit::Enrichment do
|
|
38
38
|
company: nil
|
39
39
|
}
|
40
40
|
|
41
|
-
stub_request(:get,
|
41
|
+
stub_request(:get, 'https://person.clearbit.com/v2/combined/find?email=test@example.com').
|
42
42
|
with(:headers => {'Authorization'=>'Bearer clearbit_key', 'X-Rated' => 'true'}).
|
43
43
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
44
44
|
|
@@ -51,7 +51,7 @@ describe Clearbit::Enrichment do
|
|
51
51
|
company: nil
|
52
52
|
}
|
53
53
|
|
54
|
-
stub_request(:get,
|
54
|
+
stub_request(:get, 'https://person.clearbit.com/v2/combined/find?email=test@example.com').
|
55
55
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
56
56
|
to_return(:status => 202, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
57
57
|
|
@@ -63,7 +63,7 @@ describe Clearbit::Enrichment do
|
|
63
63
|
it 'should use the Company API if domain is provided' do
|
64
64
|
body = {}
|
65
65
|
|
66
|
-
stub_request(:get,
|
66
|
+
stub_request(:get, 'https://company.clearbit.com/v2/companies/find?domain=example.com').
|
67
67
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
68
68
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
69
69
|
|
@@ -75,7 +75,7 @@ describe Clearbit::Enrichment do
|
|
75
75
|
it 'should call out to the person API' do
|
76
76
|
body = {}
|
77
77
|
|
78
|
-
stub_request(:get,
|
78
|
+
stub_request(:get, 'https://person.clearbit.com/v2/people/find?email=test@example.com').
|
79
79
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
80
80
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
81
81
|
|
@@ -87,7 +87,7 @@ describe Clearbit::Enrichment do
|
|
87
87
|
it 'should call out to the company API' do
|
88
88
|
body = {}
|
89
89
|
|
90
|
-
stub_request(:get,
|
90
|
+
stub_request(:get, 'https://company.clearbit.com/v2/companies/find?domain=example.com').
|
91
91
|
with(:headers => {'Authorization'=>'Bearer clearbit_key'}).
|
92
92
|
to_return(:status => 200, :body => body.to_json, headers: {'Content-Type' => 'application/json'})
|
93
93
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Clearbit::Logo do
|
4
|
+
context 'domain validation' do
|
5
|
+
|
6
|
+
def check_invalid_domain(domain)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'passes for simple domains' do
|
10
|
+
expect {
|
11
|
+
Clearbit::Logo.url(domain: 'clearbit.com')
|
12
|
+
}.to_not raise_error
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'passes for dashed domains' do
|
16
|
+
expect {
|
17
|
+
Clearbit::Logo.url(domain: 'clear-bit.com')
|
18
|
+
}.to_not raise_error
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'passes for multi-dot TLDs' do
|
22
|
+
expect {
|
23
|
+
Clearbit::Logo.url(domain: 'bbc.co.uk')
|
24
|
+
}.to_not raise_error
|
25
|
+
|
26
|
+
expect {
|
27
|
+
Clearbit::Logo.url(domain: 'clear-bit.co.uk')
|
28
|
+
}.to_not raise_error
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'passes for new-style tlds' do
|
32
|
+
expect {
|
33
|
+
Clearbit::Logo.url(domain: 'clearbit.museum')
|
34
|
+
}.to_not raise_error
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'fails for invalid urls' do
|
38
|
+
expect {
|
39
|
+
Clearbit::Logo.url(domain: 'clearbit')
|
40
|
+
}.to raise_error(ArgumentError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -49,6 +49,6 @@ describe Clearbit::Webhook do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def generate_signature(webhook_body)
|
52
|
-
'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest
|
52
|
+
'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), 'clearbit_key', webhook_body)
|
53
53
|
end
|
54
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clearbit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex MacCaw
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- examples/version.rb
|
144
144
|
- examples/watchlist.rb
|
145
145
|
- lib/clearbit.rb
|
146
|
+
- lib/clearbit/autocomplete.rb
|
146
147
|
- lib/clearbit/base.rb
|
147
148
|
- lib/clearbit/discovery.rb
|
148
149
|
- lib/clearbit/enrichment.rb
|
@@ -155,11 +156,13 @@ files:
|
|
155
156
|
- lib/clearbit/pending.rb
|
156
157
|
- lib/clearbit/prospector.rb
|
157
158
|
- lib/clearbit/resource.rb
|
159
|
+
- lib/clearbit/risk.rb
|
158
160
|
- lib/clearbit/version.rb
|
159
161
|
- lib/clearbit/watchlist.rb
|
160
162
|
- lib/clearbit/webhook.rb
|
161
163
|
- spec/lib/clearbit/discovery_spec.rb
|
162
164
|
- spec/lib/clearbit/enrichment_spec.rb
|
165
|
+
- spec/lib/clearbit/logo_spec.rb
|
163
166
|
- spec/lib/clearbit/prospector_spec.rb
|
164
167
|
- spec/lib/clearbit/webhook_spec.rb
|
165
168
|
- spec/spec_helper.rb
|
@@ -190,6 +193,7 @@ summary: API client for clearbit.com
|
|
190
193
|
test_files:
|
191
194
|
- spec/lib/clearbit/discovery_spec.rb
|
192
195
|
- spec/lib/clearbit/enrichment_spec.rb
|
196
|
+
- spec/lib/clearbit/logo_spec.rb
|
193
197
|
- spec/lib/clearbit/prospector_spec.rb
|
194
198
|
- spec/lib/clearbit/webhook_spec.rb
|
195
199
|
- spec/spec_helper.rb
|