Class: Pipl::Client::SearchResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/pipl/response.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ SearchResponse

Returns a new instance of SearchResponse.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pipl/response.rb', line 19

def initialize(params={})
  @query = params[:query]
  @person = params[:person]
  @sources = params[:sources]
  @possible_persons = params[:possible_persons]
  @warnings = params[:warnings]
  @visible_sources = params[:visible_sources]
  @available_sources = params[:available_sources]
  @search_id = params[:search_id]
  @http_status_code = params[:http_status_code]
  @raw_response = params[:raw_response]
  @available_data = params[:available_data]
  @match_requirements = params[:match_requirements]
  @source_category_requirements = params[:source_category_requirements]
  @person_count = params[:person_count]
  @qps_allotted = params[:qps_allotted]
  @qps_current = params[:qps_current]
  @qps_live_allotted = params[:qps_live_allotted]
  @qps_live_current = params[:qps_live_current]
  @qps_demo_allotted = params[:qps_demo_allotted]
  @qps_demo_current = params[:qps_demo_current]
  @quota_allotted = params[:quota_allotted]
  @quota_current = params[:quota_current]
  @quota_reset = params[:quota_reset]
  @demo_usage_allotted = params[:demo_usage_allotted]
  @demo_usage_current = params[:demo_usage_current]
  @demo_usage_expiry = params[:demo_usage_expiry]
end

Instance Attribute Details

#available_dataObject (readonly)

Returns the value of attribute available_data.



12
13
14
# File 'lib/pipl/response.rb', line 12

def available_data
  @available_data
end

#available_sourcesObject (readonly)

Returns the value of attribute available_sources.



11
12
13
# File 'lib/pipl/response.rb', line 11

def available_sources
  @available_sources
end

#demo_usage_allottedObject (readonly)

Returns the value of attribute demo_usage_allotted.



14
15
16
# File 'lib/pipl/response.rb', line 14

def demo_usage_allotted
  @demo_usage_allotted
end

#demo_usage_currentObject (readonly)

Returns the value of attribute demo_usage_current.



14
15
16
# File 'lib/pipl/response.rb', line 14

def demo_usage_current
  @demo_usage_current
end

#demo_usage_expiryObject (readonly)

Returns the value of attribute demo_usage_expiry.



14
15
16
# File 'lib/pipl/response.rb', line 14

def demo_usage_expiry
  @demo_usage_expiry
end

#http_status_codeObject (readonly)

Returns the value of attribute http_status_code.



12
13
14
# File 'lib/pipl/response.rb', line 12

def http_status_code
  @http_status_code
end

#match_requirementsObject (readonly)

Returns the value of attribute match_requirements.



12
13
14
# File 'lib/pipl/response.rb', line 12

def match_requirements
  @match_requirements
end

#personObject (readonly)

Returns the value of attribute person.



11
12
13
# File 'lib/pipl/response.rb', line 11

def person
  @person
end

#person_countObject (readonly)

Returns the value of attribute person_count.



13
14
15
# File 'lib/pipl/response.rb', line 13

def person_count
  @person_count
end

#possible_personsObject (readonly)

Returns the value of attribute possible_persons.



11
12
13
# File 'lib/pipl/response.rb', line 11

def possible_persons
  @possible_persons
end

#qps_allottedObject (readonly)

Returns the value of attribute qps_allotted.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_allotted
  @qps_allotted
end

#qps_currentObject (readonly)

Returns the value of attribute qps_current.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_current
  @qps_current
end

#qps_demo_allottedObject (readonly)

Returns the value of attribute qps_demo_allotted.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_demo_allotted
  @qps_demo_allotted
end

#qps_demo_currentObject (readonly)

Returns the value of attribute qps_demo_current.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_demo_current
  @qps_demo_current
end

#qps_live_allottedObject (readonly)

Returns the value of attribute qps_live_allotted.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_live_allotted
  @qps_live_allotted
end

#qps_live_currentObject (readonly)

Returns the value of attribute qps_live_current.



14
15
16
# File 'lib/pipl/response.rb', line 14

def qps_live_current
  @qps_live_current
end

#queryObject (readonly)

Returns the value of attribute query.



11
12
13
# File 'lib/pipl/response.rb', line 11

def query
  @query
end

#quota_allottedObject (readonly)

Returns the value of attribute quota_allotted.



14
15
16
# File 'lib/pipl/response.rb', line 14

def quota_allotted
  @quota_allotted
end

#quota_currentObject (readonly)

Returns the value of attribute quota_current.



14
15
16
# File 'lib/pipl/response.rb', line 14

def quota_current
  @quota_current
end

#quota_resetObject (readonly)

Returns the value of attribute quota_reset.



14
15
16
# File 'lib/pipl/response.rb', line 14

def quota_reset
  @quota_reset
end

#raw_responseObject (readonly)

Returns the value of attribute raw_response.



12
13
14
# File 'lib/pipl/response.rb', line 12

def raw_response
  @raw_response
end

#search_idObject (readonly)

Returns the value of attribute search_id.



12
13
14
# File 'lib/pipl/response.rb', line 12

def search_id
  @search_id
end

#source_category_requirementsObject (readonly)

Returns the value of attribute source_category_requirements.



13
14
15
# File 'lib/pipl/response.rb', line 13

def source_category_requirements
  @source_category_requirements
end

#sourcesObject (readonly)

Returns the value of attribute sources.



11
12
13
# File 'lib/pipl/response.rb', line 11

def sources
  @sources
end

#visible_sourcesObject (readonly)

Returns the value of attribute visible_sources.



11
12
13
# File 'lib/pipl/response.rb', line 11

def visible_sources
  @visible_sources
end

#warningsObject (readonly)

Returns the value of attribute warnings.



11
12
13
# File 'lib/pipl/response.rb', line 11

def warnings
  @warnings
end

Class Method Details

.deserialize(json_str, headers = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/pipl/response.rb', line 48

def self.deserialize(json_str, headers={})
  h = JSON.parse(json_str, symbolize_names: true)

  params = {}
  params[:query] = Pipl::Person.from_hash(h[:query]) if h.key? :query
  params[:person] = Pipl::Person.from_hash(h[:person]) if h.key? :person
  params[:sources] = h[:sources].map { |s| Pipl::Source.from_hash(s) } if h.key? :sources
  params[:possible_persons] = h[:possible_persons].map { |p| Pipl::Person.from_hash(p) } if h.key? :possible_persons
  params[:warnings] = h[:warnings]
  params[:visible_sources] = h[:@visible_sources]
  params[:available_sources] = h[:@available_sources]
  params[:search_id] = h[:@search_id]
  params[:http_status_code] = h[:@http_status_code]
  params[:raw_response] = json_str
  params[:match_requirements] = h[:match_requirements]
  params[:source_category_requirements] = h[:source_category_requirements]
  params[:available_data] = AvailableData.from_hash(h[:available_data]) if h.key? :available_data

  # person_count: API v4 doesn't send this in the response so we compute it here
  if h.key? :@person_count
    params[:person_count] = h[:@person_count]
  elsif h.key?(:person)
    params[:person_count] = 1
  elsif h.key?(:possible_persons)
    params[:person_count] = h[:possible_persons].length
  else
    params[:person_count] = 0
  end

  params.merge! Utils::extract_rate_limits(headers)

  self.new(params)
end

.from_http_response(resp) ⇒ Object



82
83
84
# File 'lib/pipl/response.rb', line 82

def self.from_http_response(resp)
  self.deserialize(resp.body, resp)
end

.from_json(json_str) ⇒ Object

Here for backward compatibility



87
88
89
# File 'lib/pipl/response.rb', line 87

def self.from_json(json_str)
  self.deserialize(json_str)
end

Instance Method Details

#addressObject



119
120
121
# File 'lib/pipl/response.rb', line 119

def address
  @person.address if @person
end

#ageObject



111
112
113
# File 'lib/pipl/response.rb', line 111

def age
  @person.age if @person
end

#educationObject



123
124
125
# File 'lib/pipl/response.rb', line 123

def education
  @person.education if @person
end

#emailObject



143
144
145
# File 'lib/pipl/response.rb', line 143

def email
  @person.email if @person
end

#ethnicityObject



131
132
133
# File 'lib/pipl/response.rb', line 131

def ethnicity
  @person.ethnicity if @person
end

#genderObject



107
108
109
# File 'lib/pipl/response.rb', line 107

def gender
  @person.gender if @person
end

#group_sources_by_categoryObject



99
100
101
# File 'lib/pipl/response.rb', line 99

def group_sources_by_category
  @sources.group_by { |s| s.category } if @sources
end

#group_sources_by_domainObject



95
96
97
# File 'lib/pipl/response.rb', line 95

def group_sources_by_domain
  @sources.group_by { |s| s.domain } if @sources
end

#group_sources_by_matchObject



103
104
105
# File 'lib/pipl/response.rb', line 103

def group_sources_by_match
  @sources.group_by { |s| s.match } if @sources
end

#imageObject



151
152
153
# File 'lib/pipl/response.rb', line 151

def image
  @person.image if @person
end

#jobObject



115
116
117
# File 'lib/pipl/response.rb', line 115

def job
  @person.job if @person
end

#languageObject



127
128
129
# File 'lib/pipl/response.rb', line 127

def language
  @person.language if @person
end

#matching_sourcesObject



91
92
93
# File 'lib/pipl/response.rb', line 91

def matching_sources
  @sources.select { |s| s.match == 1.0 } if @sources
end

#nameObject



147
148
149
# File 'lib/pipl/response.rb', line 147

def name
  @person.name if @person
end

#origin_countryObject



135
136
137
# File 'lib/pipl/response.rb', line 135

def origin_country
  @person.origin_country if @person
end

#phoneObject



139
140
141
# File 'lib/pipl/response.rb', line 139

def phone
  @person.phone if @person
end

#relationshipObject



167
168
169
# File 'lib/pipl/response.rb', line 167

def relationship
  @person.relationship if @person
end

#urlObject



155
156
157
# File 'lib/pipl/response.rb', line 155

def url
  @person.url if @person
end

#user_idObject



163
164
165
# File 'lib/pipl/response.rb', line 163

def user_id
  @person.user_id if @person
end

#usernameObject



159
160
161
# File 'lib/pipl/response.rb', line 159

def username
  @person.username if @person
end

#vehicleObject



171
172
173
# File 'lib/pipl/response.rb', line 171

def vehicle
  @person.vehicle if @person
end