nymeria 2.0.2 → 2.0.4

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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/lib/company.rb +44 -0
  3. data/lib/email.rb +41 -0
  4. data/lib/nymeria.rb +8 -195
  5. data/lib/person.rb +139 -0
  6. metadata +9 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e978077892e3db1fc5b2a5a85196e3c0b337fd77deeea3efbc7ade0d73caf581
4
- data.tar.gz: 31074318571d12fca9c33c762d59bddbdc086350b4653074e4a076235fa823b1
3
+ metadata.gz: fb08ca4233a844b53ada6e9cc0b445cd15fadc69988e1aa499f3a0a0aa46bca8
4
+ data.tar.gz: a681abd80ffa7867b891e428e98bb07132fd2abd488c6205d42fd3f3b9120048
5
5
  SHA512:
6
- metadata.gz: 90dd2b0a279f240bbfc6c05519aa2f36a9f9f0ef5d84267577695e364d317ff67979c2e1f660ef25b40199bdfb190a72fc6899ca629c8f61a3409d6df4b3cb88
7
- data.tar.gz: 3da7b5c6d3dcb507fd9f7d5f2f4309dc0abce3c6b9cf369799566ddaafa3b6a75cea06bc83987e1d87eed14537a2320dd51f3a46647cfcd99deba204169331a7
6
+ metadata.gz: 124ec16ae948425b7e95803be55dc535c17bbc5ceb4a246428fe6f765dc52b4f8f9e00830c1b33ca4322512ae2e26511881e2e356e2ed4156a50a8b13d453a8f
7
+ data.tar.gz: 59c37b315b8d86ff920832d2758560adc91c37b45410bee83bab1355fe68582618f2140e2598b7dc948680f3115cc70799bd7cadeebeb26a00285cf9bddf0204
data/lib/company.rb ADDED
@@ -0,0 +1,44 @@
1
+ # Nymeria is our primary module namespace.
2
+ module Nymeria
3
+ module Company
4
+ # args: { name: '', website: '', profile: '' }
5
+ def self.enrich(args={})
6
+ uri = URI("#{BASE_URL}/company/enrich")
7
+
8
+ uri.query = URI.encode_www_form(args)
9
+
10
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
11
+
12
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
13
+ http.request(req)
14
+ end
15
+
16
+ return OpenStruct.new(JSON.parse(res.body))
17
+ rescue => e
18
+ OpenStruct.new(
19
+ success?: false,
20
+ error: "#{e}"
21
+ )
22
+ end
23
+
24
+ # args: { query: 'name:Nymeria', size: 10, from: 0 }
25
+ def self.search(args={})
26
+ uri = URI("#{BASE_URL}/company/search")
27
+
28
+ uri.query = URI.encode_www_form(args)
29
+
30
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
31
+
32
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
33
+ http.request(req)
34
+ end
35
+
36
+ return OpenStruct.new(JSON.parse(res.body))
37
+ rescue => e
38
+ OpenStruct.new(
39
+ success?: false,
40
+ error: "#{e}"
41
+ )
42
+ end
43
+ end
44
+ end
data/lib/email.rb ADDED
@@ -0,0 +1,41 @@
1
+ # Nymeria is our primary module namespace.
2
+ module Nymeria
3
+ module Email
4
+ def self.verify(email)
5
+ uri = URI("#{BASE_URL}/email/verify")
6
+
7
+ uri.query = URI.encode_www_form({ email: email.to_s.downcase.strip })
8
+
9
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
10
+
11
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
12
+ http.request(req)
13
+ end
14
+
15
+ return OpenStruct.new(JSON.parse(res.body))
16
+ rescue => e
17
+ OpenStruct.new(
18
+ success?: false,
19
+ error: "#{e}"
20
+ )
21
+ end
22
+
23
+ def self.bulk_verify(*args)
24
+ uri = URI("#{BASE_URL}/email/verify/bulk")
25
+ req = Nymeria::request(Net::HTTP::Post.new(uri))
26
+ req['Content-Type'] = 'application/json'
27
+ req.body = JSON.dump({ requests: args })
28
+
29
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
30
+ http.request(req)
31
+ end
32
+
33
+ return JSON.parse(res.body)
34
+ rescue => e
35
+ OpenStruct.new(
36
+ success?: false,
37
+ error: "#{e}"
38
+ )
39
+ end
40
+ end
41
+ end
data/lib/nymeria.rb CHANGED
@@ -1,210 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './company.rb'
4
+ require_relative './email.rb'
5
+ require_relative './person.rb'
6
+
3
7
  require 'json'
4
8
  require 'net/http'
5
9
 
6
- BASE_URL = 'https://www.nymeria.io/api/v3'
7
- USER_AGENT = 'nymeria.rb/2.0'
10
+ API_KEY = ''
11
+ BASE_URL = 'https://www.nymeria.io/api/v4'
12
+ USER_AGENT = 'nymeria.rb/2.0.4'
8
13
 
9
14
  # Nymeria is our primary module namespace.
10
15
  module Nymeria
11
16
  class << self
12
- attr_accessor :api_key
13
-
14
17
  def request(req)
15
- req['Content-Type'] = 'application/json'
16
- req['X-Api-Key'] = api_key
18
+ req['X-Api-Key'] = API_KEY
17
19
  req['User-Agent'] = USER_AGENT
18
20
  req
19
21
  end
20
22
  end
21
-
22
- def self.authenticated?
23
- self.check_authentication.success?
24
- end
25
-
26
- def self.check_authentication
27
- uri = URI("#{BASE_URL}/check-authentication")
28
- req = request(Net::HTTP::Post.new(uri))
29
-
30
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
31
- http.request(req)
32
- end
33
-
34
- response = JSON.parse(res.body)
35
-
36
- OpenStruct.new(
37
- success?: response['status'] == 'success',
38
- error: response['developer_message']
39
- )
40
- rescue => e
41
- OpenStruct.new(
42
- success?: false,
43
- error: "#{e}"
44
- )
45
- end
46
-
47
- def self.verify(email)
48
- uri = URI("#{BASE_URL}/verify")
49
- req = request(Net::HTTP::Post.new(uri))
50
- req.body = JSON.dump({ email: email })
51
-
52
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
53
- http.request(req)
54
- end
55
-
56
- response = JSON.parse(res.body)
57
-
58
- OpenStruct.new(
59
- success?: response['status'] == 'success',
60
- usage: OpenStruct.new(response['usage']),
61
- data: OpenStruct.new(response['data'])
62
- )
63
- rescue => e
64
- OpenStruct.new(
65
- success?: false,
66
- error: "#{e}"
67
- )
68
- end
69
-
70
- # Accepts one or more hashes with any of the following: { url: '', identifier: '', email: '', custom: { ... } }
71
- def self.enrich(*args)
72
- if args.nil? || !args.is_a?(Array)
73
- return OpenStruct.new(
74
- success?: false,
75
- error: "Invalid parameter detected. Requires one or more hashes with any of the following keys; :url, ;identifier or :email."
76
- )
77
- end
78
-
79
- valid_keys = [:url, :identifier, :email, :custom]
80
-
81
- valid_args = args.select do |arg|
82
- arg.is_a?(Hash) && valid_keys.any? { |k| arg.keys.include?(k) }
83
- end
84
-
85
- if valid_args.length == 0
86
- return OpenStruct.new(
87
- success?: false,
88
- error: "Invalid parameter detected. Requires one or more hashes with any of the following keys; :url, ;identifier or :email."
89
- )
90
- end
91
-
92
- # Clean the args; remove any unsupported keys.
93
- valid_args.each do |arg|
94
- arg.keys.each do |key|
95
- arg.delete(key) unless valid_keys.include?(key)
96
- end
97
- end
98
-
99
- if valid_args.length == 1
100
- #
101
- # Single Enrichment
102
- #
103
- begin
104
- arg = valid_args.first
105
-
106
- uri = URI("#{BASE_URL}/enrich")
107
- req = request(Net::HTTP::Post.new(uri))
108
- req.body = JSON.dump(arg)
109
-
110
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
111
- http.request(req)
112
- end
113
-
114
- response = JSON.parse(res.body)
115
-
116
- return OpenStruct.new(
117
- success?: response['status'] == 'success',
118
- error: response['error'],
119
- usage: OpenStruct.new(response['usage']),
120
- data: OpenStruct.new(response['data'])
121
- )
122
- rescue => e
123
- return OpenStruct.new(
124
- success?: false,
125
- error: "#{e}"
126
- )
127
- end
128
- else
129
- #
130
- # Bulk Enrichment
131
- #
132
- begin
133
- uri = URI("#{BASE_URL}/bulk-enrich")
134
- req = request(Net::HTTP::Post.new(uri))
135
- req.body = JSON.dump({ people: args })
136
-
137
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
138
- http.request(req)
139
- end
140
-
141
- response = JSON.parse(res.body)
142
-
143
- OpenStruct.new(
144
- success?: response['status'] == 'success',
145
- error: response['error'],
146
- usage: OpenStruct.new(response['usage']),
147
- data: response.fetch('data', []).map { |data| OpenStruct.new(data) }
148
- )
149
- rescue => e
150
- OpenStruct.new(
151
- success?: false,
152
- error: "#{e}"
153
- )
154
- end
155
- end
156
- end
157
-
158
- def self.people(query)
159
- begin
160
- uri = URI("#{BASE_URL}/people")
161
- uri.query = URI.encode_www_form(query)
162
-
163
- req = request(Net::HTTP::Get.new(uri))
164
-
165
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
166
- http.request(req)
167
- end
168
-
169
- response = JSON.parse(res.body)
170
-
171
- OpenStruct.new(
172
- success?: response['status'] == 'success',
173
- error: response['error'],
174
- usage: OpenStruct.new(response['usage']),
175
- data: response.fetch('data', []).map { |data| OpenStruct.new(data) }
176
- )
177
- rescue => e
178
- OpenStruct.new(
179
- success?: false,
180
- error: "#{e}"
181
- )
182
- end
183
- end
184
-
185
- def self.reveal(uuids)
186
- begin
187
- uri = URI("#{BASE_URL}/people")
188
- req = request(Net::HTTP::Post.new(uri))
189
- req.body = JSON.dump({ uuids: uuids })
190
-
191
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
192
- http.request(req)
193
- end
194
-
195
- response = JSON.parse(res.body)
196
-
197
- OpenStruct.new(
198
- success?: response['status'] == 'success',
199
- error: response['error'],
200
- usage: OpenStruct.new(response['usage']),
201
- data: response.fetch('data', []).map { |data| OpenStruct.new(data) }
202
- )
203
- rescue => e
204
- OpenStruct.new(
205
- success?: false,
206
- error: "#{e}"
207
- )
208
- end
209
- end
210
23
  end
data/lib/person.rb ADDED
@@ -0,0 +1,139 @@
1
+ # Nymeria is our primary module namespace.
2
+ module Nymeria
3
+ module Person
4
+ # args: { profile: '', email: '', lid: '' }
5
+ def self.enrich(args={})
6
+ uri = URI("#{BASE_URL}/person/enrich")
7
+
8
+ uri.query = URI.encode_www_form(args)
9
+
10
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
11
+
12
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
13
+ http.request(req)
14
+ end
15
+
16
+ return OpenStruct.new(JSON.parse(res.body))
17
+ rescue => e
18
+ OpenStruct.new(
19
+ success?: false,
20
+ error: "#{e}"
21
+ )
22
+ end
23
+
24
+ def self.bulk_enrich(*args)
25
+ uri = URI("#{BASE_URL}/person/enrich/bulk")
26
+
27
+ req = Nymeria::request(Net::HTTP::Post.new(uri))
28
+ req['Content-Type'] = 'application/json'
29
+ req.body = JSON.dump({ requests: args })
30
+
31
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
32
+ http.request(req)
33
+ end
34
+
35
+ return JSON.parse(res.body)
36
+ rescue => e
37
+ OpenStruct.new(
38
+ success?: false,
39
+ error: "#{e}"
40
+ )
41
+ end
42
+
43
+ # args: { profile: '', email: '', lid: '' }
44
+ def self.preview(args={})
45
+ uri = URI("#{BASE_URL}/person/enrich/preview")
46
+
47
+ uri.query = URI.encode_www_form(args)
48
+
49
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
50
+
51
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
52
+ http.request(req)
53
+ end
54
+
55
+ return OpenStruct.new(JSON.parse(res.body))
56
+ rescue => e
57
+ OpenStruct.new(
58
+ success?: false,
59
+ error: "#{e}"
60
+ )
61
+ end
62
+
63
+ # args: { name: '', location: '', country: '' }
64
+ def self.identify(args={})
65
+ uri = URI("#{BASE_URL}/person/identify")
66
+
67
+ uri.query = URI.encode_www_form(args)
68
+
69
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
70
+
71
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
72
+ http.request(req)
73
+ end
74
+
75
+ return JSON.parse(res.body)
76
+ rescue => e
77
+ OpenStruct.new(
78
+ success?: false,
79
+ error: "#{e}"
80
+ )
81
+ end
82
+
83
+ # args: { query: 'first_name:john & last_name:danner', size: 10, from: 0 }
84
+ def self.search(args={})
85
+ uri = URI("#{BASE_URL}/person/search")
86
+
87
+ uri.query = URI.encode_www_form(args)
88
+
89
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
90
+
91
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
92
+ http.request(req)
93
+ end
94
+
95
+ return OpenStruct.new(JSON.parse(res.body))
96
+ rescue => e
97
+ OpenStruct.new(
98
+ success?: false,
99
+ error: "#{e}"
100
+ )
101
+ end
102
+
103
+ def self.retrieve(id)
104
+ uri = URI("#{BASE_URL}/person/retrieve/#{id}")
105
+
106
+ req = Nymeria::request(Net::HTTP::Get.new(uri))
107
+
108
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
109
+ http.request(req)
110
+ end
111
+
112
+ return OpenStruct.new(JSON.parse(res.body))
113
+ rescue => e
114
+ OpenStruct.new(
115
+ success?: false,
116
+ error: "#{e}"
117
+ )
118
+ end
119
+
120
+ def self.bulk_retrieve(*args)
121
+ uri = URI("#{BASE_URL}/person/retrieve/bulk")
122
+
123
+ req = Nymeria::request(Net::HTTP::Post.new(uri))
124
+ req['Content-Type'] = 'application/json'
125
+ req.body = JSON.dump({ requests: args })
126
+
127
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
128
+ http.request(req)
129
+ end
130
+
131
+ return JSON.parse(res.body)
132
+ rescue => e
133
+ OpenStruct.new(
134
+ success?: false,
135
+ error: "#{e}"
136
+ )
137
+ end
138
+ end
139
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nymeria
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nymeria, LLC
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 1980-01-01 00:00:00.000000000 Z
11
+ date: 2022-11-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Nymeria enables people to easily discover and connect with people. This
14
14
  gem is a light weight wrapper around Nymeria's API. With this gem you can easily
@@ -18,13 +18,16 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - lib/company.rb
22
+ - lib/email.rb
21
23
  - lib/nymeria.rb
24
+ - lib/person.rb
22
25
  homepage: https://www.nymeria.io
23
26
  licenses:
24
27
  - MIT
25
28
  metadata:
26
29
  source_code_uri: https://git.nymeria.io/nymeria.rb
27
- post_install_message:
30
+ post_install_message:
28
31
  rdoc_options: []
29
32
  require_paths:
30
33
  - lib
@@ -39,8 +42,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
42
  - !ruby/object:Gem::Version
40
43
  version: '0'
41
44
  requirements: []
42
- rubygems_version: 3.2.26
43
- signing_key:
45
+ rubygems_version: 3.3.5
46
+ signing_key:
44
47
  specification_version: 4
45
48
  summary: Easily interact with Nymeria's API to find and verify people's contact information.
46
49
  test_files: []