cufinder-ruby 1.1.0 → 1.2.0
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +43 -3
- data/cufinder-ruby.gemspec +1 -1
- data/lib/cufinder_ruby/client.rb +16 -0
- data/lib/cufinder_ruby/services.rb +30 -0
- data/lib/cufinder_ruby/types.rb +142 -0
- data/lib/cufinder_ruby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 44b98b86c620454eac62fab4ba87a4c2e49aaa710d4096825932e6294d037bd9
|
|
4
|
+
data.tar.gz: 574b9c457d9a3fbbbc0602617ba323ba7930499055b485ec162763185dce5305
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2a786c6a1b6f151223eff85114283d736e24e93ee0e946b0eac1900a2b57952261ee7eccb947ca5129fc735ba636c5d259c2cd0ff21aa4a54597801db5bd48c1
|
|
7
|
+
data.tar.gz: 29967a91c181832949a7f9092d96507a3a4cad5bc140cfb5d262fdf2f2b0a0c203d109c790893593a2f22813b16381fcc7d22d125367f2e006db3115f55ae5cc
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -53,7 +53,7 @@ client = Cufinder::Client.new(
|
|
|
53
53
|
|
|
54
54
|
## API Reference
|
|
55
55
|
|
|
56
|
-
This SDK covers all
|
|
56
|
+
This SDK covers all 32 Cufinder API (v2) endpoints:
|
|
57
57
|
|
|
58
58
|
- **CUF** - [Company Name to Domain](https://apidoc.cufinder.io/apis/company-name-to-domain)
|
|
59
59
|
- **LCUF** - [LinkedIn Company URL Finder](https://apidoc.cufinder.io/apis/company-linkedin-url-finder)
|
|
@@ -83,6 +83,10 @@ This SDK covers all 28 Cufinder API (v2) endpoints:
|
|
|
83
83
|
- **CSN** - [Company Snapshot](https://apidoc.cufinder.io/apis/company-snapshot)
|
|
84
84
|
- **NAO** - [Phone Number Normalizer](https://apidoc.cufinder.io/apis/phone-number-normalizer)
|
|
85
85
|
- **NAA** - [Address Normalizer](https://apidoc.cufinder.io/apis/address-normalizer)
|
|
86
|
+
- **CEF** - [Company Employees Finder](https://apidoc.cufinder.io/apis/company-employees-finder)
|
|
87
|
+
- **NAC** - [Company Name Normalizer](https://apidoc.cufinder.io/apis/company-name-normalizer)
|
|
88
|
+
- **CAA** - [Company Activities API](https://apidoc.cufinder.io/apis/company-activities-api)
|
|
89
|
+
- **CJA** - [Company Jobs API](https://apidoc.cufinder.io/apis/company-jobs-api)
|
|
86
90
|
|
|
87
91
|
|
|
88
92
|
**CUF - Company Name to Domain**
|
|
@@ -279,7 +283,7 @@ puts result
|
|
|
279
283
|
|
|
280
284
|
**BCD - B2B Customers Finder**
|
|
281
285
|
|
|
282
|
-
Returns
|
|
286
|
+
Returns B2B customers for a company
|
|
283
287
|
|
|
284
288
|
```ruby
|
|
285
289
|
result = client.bcd(url: "stripe.com")
|
|
@@ -288,7 +292,7 @@ puts result
|
|
|
288
292
|
|
|
289
293
|
**CCP - Company Career Page Finder**
|
|
290
294
|
|
|
291
|
-
Returns
|
|
295
|
+
Returns company's careers page URL
|
|
292
296
|
|
|
293
297
|
```ruby
|
|
294
298
|
result = client.ccp(url: "stripe.com")
|
|
@@ -349,6 +353,42 @@ result = client.naa(address: "1095 avenue of the Americas, 6th Avenue ny 10036")
|
|
|
349
353
|
puts result
|
|
350
354
|
```
|
|
351
355
|
|
|
356
|
+
**CEF - Company Employees Finder**
|
|
357
|
+
|
|
358
|
+
Returns company's employees
|
|
359
|
+
|
|
360
|
+
```ruby
|
|
361
|
+
result = client.cef(query: "cufinder", page: 1)
|
|
362
|
+
puts result
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**NAC - Company Name Normalizer**
|
|
366
|
+
|
|
367
|
+
Returns normalized company name
|
|
368
|
+
|
|
369
|
+
```ruby
|
|
370
|
+
result = client.nac(company: "cufinder inc.")
|
|
371
|
+
puts result
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**CAA - Company Activities API**
|
|
375
|
+
|
|
376
|
+
Returns company's LinkedIn activities
|
|
377
|
+
|
|
378
|
+
```ruby
|
|
379
|
+
result = client.caa(query: "cufinder", page: 1)
|
|
380
|
+
puts result
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
**CJA - Company Jobs API**
|
|
384
|
+
|
|
385
|
+
Returns company's job listings
|
|
386
|
+
|
|
387
|
+
```ruby
|
|
388
|
+
result = client.cja(name: "google", country: "united states", page: 1)
|
|
389
|
+
puts result
|
|
390
|
+
```
|
|
391
|
+
|
|
352
392
|
## Error Handling
|
|
353
393
|
|
|
354
394
|
The SDK provides comprehensive error handling with custom error types:
|
data/cufinder-ruby.gemspec
CHANGED
data/lib/cufinder_ruby/client.rb
CHANGED
|
@@ -141,5 +141,21 @@ module Cufinder
|
|
|
141
141
|
def naa(address:)
|
|
142
142
|
@services.normalize_address(address: address)
|
|
143
143
|
end
|
|
144
|
+
|
|
145
|
+
def cef(query:, page:)
|
|
146
|
+
@services.find_company_employees(query: query, page: page)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def nac(company:)
|
|
150
|
+
@services.normalize_company_name(company: company)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def caa(query:, page:)
|
|
154
|
+
@services.get_company_activities(query: query, page: page)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def cja(**params)
|
|
158
|
+
@services.search_company_jobs(params)
|
|
159
|
+
end
|
|
144
160
|
end
|
|
145
161
|
end
|
|
@@ -228,6 +228,36 @@ module Cufinder
|
|
|
228
228
|
response = @client.post("/naa", params)
|
|
229
229
|
NaaResponse.new(response)
|
|
230
230
|
end
|
|
231
|
+
|
|
232
|
+
# CEF Service - Company Employees Finder
|
|
233
|
+
def find_company_employees(params)
|
|
234
|
+
validate_required(params, [:query, :page])
|
|
235
|
+
|
|
236
|
+
response = @client.post("/cef", params)
|
|
237
|
+
CefResponse.new(response)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# NAC Service - Company Name Normalizer
|
|
241
|
+
def normalize_company_name(params)
|
|
242
|
+
validate_required(params, [:company])
|
|
243
|
+
|
|
244
|
+
response = @client.post("/nac", params)
|
|
245
|
+
NacResponse.new(response)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# CAA Service - Company Activities API
|
|
249
|
+
def get_company_activities(params)
|
|
250
|
+
validate_required(params, [:query, :page])
|
|
251
|
+
|
|
252
|
+
response = @client.post("/caa", params)
|
|
253
|
+
CaaResponse.new(response)
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
# CJA Service - Company Jobs API
|
|
257
|
+
def search_company_jobs(params)
|
|
258
|
+
response = @client.post("/cja", params)
|
|
259
|
+
CjaResponse.new(response)
|
|
260
|
+
end
|
|
231
261
|
|
|
232
262
|
private
|
|
233
263
|
|
data/lib/cufinder_ruby/types.rb
CHANGED
|
@@ -601,4 +601,146 @@ module Cufinder
|
|
|
601
601
|
@address = data["address"]
|
|
602
602
|
end
|
|
603
603
|
end
|
|
604
|
+
|
|
605
|
+
# CEF Employee
|
|
606
|
+
class CefEmployee
|
|
607
|
+
attr_accessor :full_name, :first_name, :last_name, :linkedin_url, :summary,
|
|
608
|
+
:avatar, :country, :state, :city, :job_title,
|
|
609
|
+
:job_title_categories, :company_name, :company_linkedin,
|
|
610
|
+
:company_website, :company_size, :company_industry,
|
|
611
|
+
:company_facebook, :company_twitter, :company_country,
|
|
612
|
+
:company_state, :company_city
|
|
613
|
+
|
|
614
|
+
def initialize(data = {})
|
|
615
|
+
@full_name = data["full_name"]
|
|
616
|
+
@first_name = data["first_name"]
|
|
617
|
+
@last_name = data["last_name"]
|
|
618
|
+
@linkedin_url = data["linkedin_url"]
|
|
619
|
+
@summary = data["summary"]
|
|
620
|
+
@avatar = data["avatar"]
|
|
621
|
+
@country = data["country"]
|
|
622
|
+
@state = data["state"]
|
|
623
|
+
@city = data["city"]
|
|
624
|
+
@job_title = data["job_title"]
|
|
625
|
+
@job_title_categories = data["job_title_categories"]
|
|
626
|
+
@company_name = data["company_name"]
|
|
627
|
+
@company_linkedin = data["company_linkedin"]
|
|
628
|
+
@company_website = data["company_website"]
|
|
629
|
+
@company_size = data["company_size"]
|
|
630
|
+
@company_industry = data["company_industry"]
|
|
631
|
+
@company_facebook = data["company_facebook"]
|
|
632
|
+
@company_twitter = data["company_twitter"]
|
|
633
|
+
@company_country = data["company_country"]
|
|
634
|
+
@company_state = data["company_state"]
|
|
635
|
+
@company_city = data["company_city"]
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
class CefResponse < BaseResponse
|
|
640
|
+
attr_accessor :employees
|
|
641
|
+
|
|
642
|
+
def initialize(data = {})
|
|
643
|
+
super(data)
|
|
644
|
+
@employees = (data["employees"] || []).map { |e| CefEmployee.new(e) }
|
|
645
|
+
end
|
|
646
|
+
end
|
|
647
|
+
|
|
648
|
+
class NacResponse < BaseResponse
|
|
649
|
+
attr_accessor :company
|
|
650
|
+
|
|
651
|
+
def initialize(data = {})
|
|
652
|
+
super(data)
|
|
653
|
+
@company = data["company"]
|
|
654
|
+
end
|
|
655
|
+
end
|
|
656
|
+
|
|
657
|
+
# CAA Activity
|
|
658
|
+
class CaaActivity
|
|
659
|
+
attr_accessor :activity_url, :activity_id, :author_name, :author_type, :author_url,
|
|
660
|
+
:activity_comments_count, :activity_hashtags, :activity_headline,
|
|
661
|
+
:activity_images, :activity_is_video, :activity_posted_at,
|
|
662
|
+
:activity_reactions_count, :activity_reposts_count, :activity_text,
|
|
663
|
+
:activity_top_comments, :activity_videos
|
|
664
|
+
|
|
665
|
+
def initialize(data = {})
|
|
666
|
+
@activity_url = data["activity_url"]
|
|
667
|
+
@activity_id = data["activity_id"]
|
|
668
|
+
@author_name = data["author_name"]
|
|
669
|
+
@author_type = data["author_type"]
|
|
670
|
+
@author_url = data["author_url"]
|
|
671
|
+
@activity_comments_count = data["activity_comments_count"]
|
|
672
|
+
@activity_hashtags = data["activity_hashtags"] || []
|
|
673
|
+
@activity_headline = data["activity_headline"]
|
|
674
|
+
@activity_images = data["activity_images"] || []
|
|
675
|
+
@activity_is_video = data["activity_is_video"]
|
|
676
|
+
@activity_posted_at = data["activity_posted_at"]
|
|
677
|
+
@activity_reactions_count = data["activity_reactions_count"]
|
|
678
|
+
@activity_reposts_count = data["activity_reposts_count"]
|
|
679
|
+
@activity_text = data["activity_text"]
|
|
680
|
+
@activity_top_comments = data["activity_top_comments"] || []
|
|
681
|
+
@activity_videos = data["activity_videos"] || []
|
|
682
|
+
end
|
|
683
|
+
end
|
|
684
|
+
|
|
685
|
+
class CaaResponse < BaseResponse
|
|
686
|
+
attr_accessor :activities
|
|
687
|
+
|
|
688
|
+
def initialize(data = {})
|
|
689
|
+
super(data)
|
|
690
|
+
@activities = (data["activities"] || []).map { |a| CaaActivity.new(a) }
|
|
691
|
+
end
|
|
692
|
+
end
|
|
693
|
+
|
|
694
|
+
# CJA Company (within job listing)
|
|
695
|
+
class CjaCompany
|
|
696
|
+
attr_accessor :name, :industry, :website, :linkedin, :followers_count,
|
|
697
|
+
:employees, :founded_date, :annual_revenue, :funding_amount,
|
|
698
|
+
:main_location
|
|
699
|
+
|
|
700
|
+
def initialize(data = {})
|
|
701
|
+
@name = data["name"]
|
|
702
|
+
@industry = data["industry"]
|
|
703
|
+
@website = data["website"]
|
|
704
|
+
@linkedin = data["linkedin"]
|
|
705
|
+
@followers_count = data["followers_count"]
|
|
706
|
+
@employees = data["employees"]
|
|
707
|
+
@founded_date = data["founded_date"]
|
|
708
|
+
@annual_revenue = data["annual_revenue"]
|
|
709
|
+
@funding_amount = data["funding_amount"]
|
|
710
|
+
@main_location = data["main_location"] ? MainLocation.new(data["main_location"]) : nil
|
|
711
|
+
end
|
|
712
|
+
end
|
|
713
|
+
|
|
714
|
+
# CJA Job listing
|
|
715
|
+
class CjaJob
|
|
716
|
+
attr_accessor :job_id, :title, :url, :location, :posted_at, :posted_at_text
|
|
717
|
+
|
|
718
|
+
def initialize(data = {})
|
|
719
|
+
@job_id = data["job_id"]
|
|
720
|
+
@title = data["title"]
|
|
721
|
+
@url = data["url"]
|
|
722
|
+
@location = data["location"]
|
|
723
|
+
@posted_at = data["posted_at"]
|
|
724
|
+
@posted_at_text = data["posted_at_text"]
|
|
725
|
+
end
|
|
726
|
+
end
|
|
727
|
+
|
|
728
|
+
# CJA Company Job (combined company + job)
|
|
729
|
+
class CompanyJob
|
|
730
|
+
attr_accessor :company, :job
|
|
731
|
+
|
|
732
|
+
def initialize(data = {})
|
|
733
|
+
@company = data["company"] ? CjaCompany.new(data["company"]) : nil
|
|
734
|
+
@job = data["job"] ? CjaJob.new(data["job"]) : nil
|
|
735
|
+
end
|
|
736
|
+
end
|
|
737
|
+
|
|
738
|
+
class CjaResponse < BaseResponse
|
|
739
|
+
attr_accessor :jobs
|
|
740
|
+
|
|
741
|
+
def initialize(data = {})
|
|
742
|
+
super(data)
|
|
743
|
+
@jobs = (data["jobs"] || []).map { |j| CompanyJob.new(j) }
|
|
744
|
+
end
|
|
745
|
+
end
|
|
604
746
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cufinder-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- CUFinder Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-06-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: httparty
|