Class: MisarReach::LeadsResource

Inherits:
Resource
  • Object
show all
Defined in:
lib/misar_reach/client.rb

Overview

── Resource: Lead Finder (leads) ────────────────────────────────────────────

23-source lead discovery, enrichment, verification, scoring, lists, saved searches, scoring rules, recommendations, and the SSE job stream.

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from MisarReach::Resource

Instance Method Details

#accountObject



30
31
32
# File 'lib/misar_reach/client.rb', line 30

def 
  @client.request(:get, "/lead-finder/account")
end

#add_to_segment(data) ⇒ Object



85
86
87
# File 'lib/misar_reach/client.rb', line 85

def add_to_segment(data)
  @client.request(:post, "/lead-finder/add-to-segment", data)
end

#company(domain) ⇒ Object



89
90
91
# File 'lib/misar_reach/client.rb', line 89

def company(domain)
  @client.request(:get, "/lead-finder/companies/#{URI.encode_www_form_component(domain)}")
end

#company_people(domain, params = {}) ⇒ Object



93
94
95
# File 'lib/misar_reach/client.rb', line 93

def company_people(domain, params = {})
  @client.request(:get, "/lead-finder/companies/#{URI.encode_www_form_component(domain)}/people#{qs(params)}")
end

#configObject



34
35
36
# File 'lib/misar_reach/client.rb', line 34

def config
  @client.request(:get, "/lead-finder/config")
end

#create_list(data) ⇒ Object



102
103
104
# File 'lib/misar_reach/client.rb', line 102

def create_list(data)
  @client.request(:post, "/lead-finder/lists", data)
end

#create_saved_search(data) ⇒ Object



115
116
117
# File 'lib/misar_reach/client.rb', line 115

def create_saved_search(data)
  @client.request(:post, "/lead-finder/saved-searches", data)
end

#create_scoring_rule(data) ⇒ Object



128
129
130
# File 'lib/misar_reach/client.rb', line 128

def create_scoring_rule(data)
  @client.request(:post, "/lead-finder/scoring-rules", data)
end

#delete_saved_search(id) ⇒ Object



119
120
121
# File 'lib/misar_reach/client.rb', line 119

def delete_saved_search(id)
  @client.request(:delete, "/lead-finder/saved-searches/#{id}")
end

#delete_scoring_rule(id) ⇒ Object



136
137
138
# File 'lib/misar_reach/client.rb', line 136

def delete_scoring_rule(id)
  @client.request(:delete, "/lead-finder/scoring-rules/#{id}")
end

#discover(data) ⇒ Object



49
50
51
# File 'lib/misar_reach/client.rb', line 49

def discover(data)
  @client.request(:post, "/lead-finder/discover", data)
end

#enrich(data) ⇒ Object



53
54
55
# File 'lib/misar_reach/client.rb', line 53

def enrich(data)
  @client.request(:post, "/lead-finder/enrich", data)
end

#export(params = {}) ⇒ Object



65
66
67
# File 'lib/misar_reach/client.rb', line 65

def export(params = {})
  @client.request(:get, "/lead-finder/export#{qs(params)}")
end

#job(job_id) ⇒ Object

── Jobs ──



141
142
143
# File 'lib/misar_reach/client.rb', line 141

def job(job_id)
  @client.request(:get, "/lead-finder/jobs/#{job_id}")
end

#job_feedback(job_id, data) ⇒ Object



145
146
147
# File 'lib/misar_reach/client.rb', line 145

def job_feedback(job_id, data)
  @client.request(:post, "/lead-finder/jobs/#{job_id}/feedback", data)
end

#list(params = {}) ⇒ Object

Synchronous lead lookup.



39
40
41
# File 'lib/misar_reach/client.rb', line 39

def list(params = {})
  @client.request(:get, "/lead-finder/leads#{qs(params)}")
end

#lists(params = {}) ⇒ Object

── Lists ──



98
99
100
# File 'lib/misar_reach/client.rb', line 98

def lists(params = {})
  @client.request(:get, "/lead-finder/lists#{qs(params)}")
end

#preview_message(data) ⇒ Object



77
78
79
# File 'lib/misar_reach/client.rb', line 77

def preview_message(data)
  @client.request(:post, "/lead-finder/preview-message", data)
end

#recommendations(params = {}) ⇒ Object



73
74
75
# File 'lib/misar_reach/client.rb', line 73

def recommendations(params = {})
  @client.request(:get, "/lead-finder/recommendations#{qs(params)}")
end

#saved_searches(params = {}) ⇒ Object

── Saved searches ──



111
112
113
# File 'lib/misar_reach/client.rb', line 111

def saved_searches(params = {})
  @client.request(:get, "/lead-finder/saved-searches#{qs(params)}")
end

#score(data) ⇒ Object



61
62
63
# File 'lib/misar_reach/client.rb', line 61

def score(data)
  @client.request(:post, "/lead-finder/score", data)
end

#scoring_rules(params = {}) ⇒ Object

── Scoring rules ──



124
125
126
# File 'lib/misar_reach/client.rb', line 124

def scoring_rules(params = {})
  @client.request(:get, "/lead-finder/scoring-rules#{qs(params)}")
end

#search(data) ⇒ Object

Start an async lead search — returns a jobId; poll job(job_id) or consume stream_job(job_id) for live progress.



45
46
47
# File 'lib/misar_reach/client.rb', line 45

def search(data)
  @client.request(:post, "/lead-finder/search", data)
end

#search_history(params = {}) ⇒ Object



69
70
71
# File 'lib/misar_reach/client.rb', line 69

def search_history(params = {})
  @client.request(:get, "/lead-finder/search-history#{qs(params)}")
end

#send_to_campaign(data) ⇒ Object



81
82
83
# File 'lib/misar_reach/client.rb', line 81

def send_to_campaign(data)
  @client.request(:post, "/lead-finder/send-to-campaign", data)
end

#stream_job(job_id, &block) ⇒ Object

Server-Sent Events stream for a running lead-finder job.

Yields each parsed event as a Hash: { event:, data: } where data is the JSON-decoded data: payload (or the raw string if not JSON). Blocks until the stream closes. Requires a block.

client.leads.stream_job(job_id) do |evt|
puts evt[:event], evt[:data]
end

Raises:

  • (ArgumentError)


158
159
160
161
# File 'lib/misar_reach/client.rb', line 158

def stream_job(job_id, &block)
  raise ArgumentError, "stream_job requires a block" unless block_given?
  @client.stream(:get, "/lead-finder/jobs/#{job_id}/stream", &block)
end

#sync_list(list_id, data = {}) ⇒ Object



106
107
108
# File 'lib/misar_reach/client.rb', line 106

def sync_list(list_id, data = {})
  @client.request(:post, "/lead-finder/lists/#{list_id}/sync", data)
end

#update_scoring_rule(id, data) ⇒ Object



132
133
134
# File 'lib/misar_reach/client.rb', line 132

def update_scoring_rule(id, data)
  @client.request(:patch, "/lead-finder/scoring-rules/#{id}", data)
end

#verify(data) ⇒ Object



57
58
59
# File 'lib/misar_reach/client.rb', line 57

def verify(data)
  @client.request(:post, "/lead-finder/verify", data)
end