peoplegraph 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/peoplegraph.rb +3 -0
- data/lib/peoplegraph/client.rb +62 -0
- data/lib/peoplegraph/error.rb +23 -0
- metadata +45 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1375b3ab66907c9ab9b9dc40516d05120090a0e2
|
4
|
+
data.tar.gz: cf785efc8febdbcc107c57ca08fbb9993dd39d70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 487f410c825cd15075a876baeec0c74d16065c5837bd83e0a10d734073cdcbf37317c8940cb6e42a621205974dec270a5cada4a4e16379df5921171b47fd2f49
|
7
|
+
data.tar.gz: e22eccc7d86202a22c847c11719b5f8fc4fd626f81615847d0cc8fef60bf2919789c66a0db5d5dd72e48954b9890c252ba23d58076455f4b80d0799ab0531d1b
|
data/lib/peoplegraph.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'faraday'
|
4
|
+
require 'multi_json'
|
5
|
+
require 'ostruct'
|
6
|
+
require 'peoplegraph'
|
7
|
+
|
8
|
+
module PeopleGraph
|
9
|
+
class Client
|
10
|
+
attr_reader :api_key, :connection
|
11
|
+
|
12
|
+
def initialize(api_key = ENV['PEOPLEGRAPH_API_KEY'], options = nil)
|
13
|
+
@api_key = api_key
|
14
|
+
# /lookup?email=razvan@3desk.com&apiKey=hYxSdRmEif0GN7jwlmeQtVQbE3T1kBb1
|
15
|
+
url = ENV['PEOPLEGRAPH_API_URL'] || 'https://api.peoplegraph.io'
|
16
|
+
block = block_given? ? Proc.new : nil
|
17
|
+
@connection = Faraday.new(url, options, &block)
|
18
|
+
end
|
19
|
+
|
20
|
+
def search(email = nil, url = nil, name = nil, company = nil, options = nil)
|
21
|
+
profile = lookup(email, url, name, company, options)
|
22
|
+
return nil if profile.nil?
|
23
|
+
OpenStruct.new(profile)
|
24
|
+
end
|
25
|
+
|
26
|
+
protected
|
27
|
+
def lookup(email = nil, url = nil, name = nil, company = nil, options = nil)
|
28
|
+
response = connection.get do |request|
|
29
|
+
request.url '/v2/lookup'
|
30
|
+
request.params['apiKey'] = api_key
|
31
|
+
request.params['email'] = email unless email.nil?
|
32
|
+
request.params['url'] = url unless url.nil?
|
33
|
+
request.params['name'] = name unless name.nil?
|
34
|
+
request.params['company'] = company unless company.nil?
|
35
|
+
request.headers['accept'] = 'application/json'
|
36
|
+
end
|
37
|
+
|
38
|
+
status = response.status.to_i
|
39
|
+
response = MultiJson.decode(response.body)
|
40
|
+
|
41
|
+
if status == 200
|
42
|
+
return response['result']
|
43
|
+
elsif status == 202
|
44
|
+
error = PeopleGraph::Error::RequestAccepted
|
45
|
+
elsif status == 400
|
46
|
+
error = PeopleGraph::Error::BadRequest
|
47
|
+
elsif status == 401
|
48
|
+
error = PeopleGraph::Error::NotAuthorized
|
49
|
+
elsif status == 404
|
50
|
+
return nil
|
51
|
+
elsif status == 429
|
52
|
+
error = PeopleGraph::Error::TooManyRequests
|
53
|
+
elsif status == 500
|
54
|
+
error = PeopleGraph::Error::ServerError
|
55
|
+
else
|
56
|
+
error = PeopleGraph::Error::UnknownError
|
57
|
+
end
|
58
|
+
|
59
|
+
fail(error, response['message'], caller)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module PeopleGraph
|
4
|
+
module Error
|
5
|
+
class NotAuthorized < StandardError
|
6
|
+
end
|
7
|
+
|
8
|
+
class BadRequest < StandardError
|
9
|
+
end
|
10
|
+
|
11
|
+
class RequestAccepted < StandardError
|
12
|
+
end
|
13
|
+
|
14
|
+
class ServerError < StandardError
|
15
|
+
end
|
16
|
+
|
17
|
+
class TooManyRequests < StandardError
|
18
|
+
end
|
19
|
+
|
20
|
+
class UnknownError < StandardError
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: peoplegraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Fontanelli
|
@@ -10,6 +10,46 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2015-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.9.1
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.9.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.9.1
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.9.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: multi_json
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.11.0
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.11.0
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.11.0
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.11.0
|
13
53
|
- !ruby/object:Gem::Dependency
|
14
54
|
name: rake
|
15
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -30,7 +70,10 @@ email:
|
|
30
70
|
executables: []
|
31
71
|
extensions: []
|
32
72
|
extra_rdoc_files: []
|
33
|
-
files:
|
73
|
+
files:
|
74
|
+
- lib/peoplegraph.rb
|
75
|
+
- lib/peoplegraph/client.rb
|
76
|
+
- lib/peoplegraph/error.rb
|
34
77
|
homepage: https://github.com/stefanofontanelli/peoplegraph
|
35
78
|
licenses: []
|
36
79
|
metadata: {}
|