realogy 0.4.0 → 0.4.1
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/README.md +23 -0
- data/lib/realogy/app/models/hash.rb +31 -0
- data/lib/realogy/app/models/realogy/agent.rb +161 -1
- data/lib/realogy/version.rb +1 -1
- data/lib/realogy.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 070c110f851e922a6ce85d09776cd71f8468d0e9b631d4f0f33f1259d85aeafa
|
4
|
+
data.tar.gz: fca16011f5496233d78d31b77f5028e02269d3cc1ac2240de9bec938e9be5d81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1727318a977c3d548f8d42b399dd42d01ab6eb52072952badc5ff106f3faf2aae2e3f0c7ef8a2de3c439693edc89a8474947c01718bf77677ec53f23466d681
|
7
|
+
data.tar.gz: cca7c4a7a13236f2d63df1966ab0f91123be145ce8458f52bd9b48af409f8c00086c12b81715dad466cfa152dec6450e144fd90d13ace13ecb29cf4ad07d58f4
|
data/README.md
CHANGED
@@ -204,13 +204,18 @@ Convenience methods to access JSON.
|
|
204
204
|
- areas_of_specialization
|
205
205
|
- business_phone
|
206
206
|
- business_phone_ext
|
207
|
+
- company_brand_code
|
208
|
+
- company_id
|
209
|
+
- company_name
|
207
210
|
- default_photo_url
|
208
211
|
- designations
|
209
212
|
- display_title
|
210
213
|
- email_address
|
211
214
|
- first_name
|
212
215
|
- gender
|
216
|
+
- has_producing_role?
|
213
217
|
- is_agent?
|
218
|
+
- is_full_time?
|
214
219
|
- is_team_member?
|
215
220
|
- languages_spoken
|
216
221
|
- last_name
|
@@ -223,6 +228,24 @@ Convenience methods to access JSON.
|
|
223
228
|
- mobile_phone
|
224
229
|
- name
|
225
230
|
- office
|
231
|
+
- office_address
|
232
|
+
- office_city
|
233
|
+
- office_country
|
234
|
+
- office_country_code
|
235
|
+
- office_district
|
236
|
+
- office_email_address
|
237
|
+
- office_fax_number
|
238
|
+
- office_formatted_address
|
239
|
+
- office_id
|
240
|
+
- office_latitude
|
241
|
+
- office_longitude
|
242
|
+
- office_name
|
243
|
+
- office_phone_number
|
244
|
+
- office_postal_code
|
245
|
+
- office_state_province
|
246
|
+
- office_state_province_code
|
247
|
+
- office_street_address
|
248
|
+
- office_type
|
226
249
|
- remarks
|
227
250
|
- roles
|
228
251
|
- specialty
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Hash.class_eval do
|
2
|
+
|
3
|
+
def dig_for_array(*path)
|
4
|
+
(v = self.dig(*path)).is_a?(Array) ? v : nil
|
5
|
+
end
|
6
|
+
|
7
|
+
def dig_for_boolean(*path)
|
8
|
+
(v = self.dig(*path)).to_s.upcase.eql?("TRUE") ? true : nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def dig_for_datetime(*path)
|
12
|
+
self.dig(*path).to_datetime rescue nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def dig_for_decimal(*path)
|
16
|
+
(v = self.dig(*path).to_f) != 0.0 ? v : nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def dig_for_hash(*path)
|
20
|
+
(v = self.dig(*path)).is_a?(Hash) ? v : nil
|
21
|
+
end
|
22
|
+
|
23
|
+
def dig_for_integer(*path)
|
24
|
+
(v = self.dig(*path).to_i) != 0 ? v : nil
|
25
|
+
end
|
26
|
+
|
27
|
+
def dig_for_string(*path)
|
28
|
+
(v = self.dig(*path)).to_s.present? ? (v.eql?("0") ? nil : v) : nil
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -55,6 +55,27 @@ class Realogy::Agent < Realogy::Entity
|
|
55
55
|
self.dig_for_string("agentSummary", "businessPhoneExt")
|
56
56
|
end
|
57
57
|
|
58
|
+
# office / brandCode : String
|
59
|
+
# The Franchise that the Office is part of
|
60
|
+
|
61
|
+
def company_brand_code
|
62
|
+
self.dig_for_string("agentSummary", "office", "brandCode")
|
63
|
+
end
|
64
|
+
|
65
|
+
# office / companyId : String
|
66
|
+
# description": "Globally unique identifier assigned to a company by Realogy
|
67
|
+
|
68
|
+
def company_id
|
69
|
+
self.dig_for_string("agentSummary", "office", "companyId")
|
70
|
+
end
|
71
|
+
|
72
|
+
# office / companyName : String
|
73
|
+
# Name of the Company
|
74
|
+
|
75
|
+
def company_name
|
76
|
+
self.dig_for_string("agentSummary", "office", "companyName")
|
77
|
+
end
|
78
|
+
|
58
79
|
# defaultPhotoURL : String
|
59
80
|
# Profile photo URL for the Agent
|
60
81
|
|
@@ -97,13 +118,27 @@ class Realogy::Agent < Realogy::Entity
|
|
97
118
|
self.dig_for_string("agentSummary", "gender")
|
98
119
|
end
|
99
120
|
|
121
|
+
# isProducingRole : Boolean
|
122
|
+
#
|
123
|
+
def has_producing_role?
|
124
|
+
return nil unless (arr = self.roles).is_a?(Array)
|
125
|
+
arr.map{|r| r.dig_for_boolean("isProducingRole")}.include?(true)
|
126
|
+
end
|
127
|
+
|
100
128
|
# isAgent : Boolean
|
101
129
|
# Indicates whether the person is an agent or not
|
102
130
|
|
103
131
|
def is_agent?
|
104
132
|
self.dig_for_boolean("agentSummary", "isAgent")
|
105
133
|
end
|
106
|
-
|
134
|
+
|
135
|
+
# isFullTime : Boolean
|
136
|
+
|
137
|
+
def is_full_time?
|
138
|
+
return nil unless (arr = self.roles).is_a?(Array)
|
139
|
+
arr.map{|r| r.dig_for_boolean("isFullTime")}.include?(true)
|
140
|
+
end
|
141
|
+
|
107
142
|
# isTeamMember : Boolean
|
108
143
|
# Indicates whether the person is a team member or not
|
109
144
|
|
@@ -186,6 +221,131 @@ class Realogy::Agent < Realogy::Entity
|
|
186
221
|
self.dig_for_string("agentSummary", "office")
|
187
222
|
end
|
188
223
|
|
224
|
+
# office / officeAddress : Hash
|
225
|
+
|
226
|
+
def office_address
|
227
|
+
self.dig_for_hash("agentSummary", "office", "officeAddress")
|
228
|
+
end
|
229
|
+
|
230
|
+
# office / officeAddress / city : String
|
231
|
+
# City
|
232
|
+
|
233
|
+
def office_city
|
234
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "city")
|
235
|
+
end
|
236
|
+
|
237
|
+
# office / officeAddress / country : String
|
238
|
+
# Country
|
239
|
+
|
240
|
+
def office_country
|
241
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "country")
|
242
|
+
end
|
243
|
+
|
244
|
+
# office / officeAddress / countryCode : String
|
245
|
+
# ISO Code of the country
|
246
|
+
|
247
|
+
def office_country_code
|
248
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "countryCode")
|
249
|
+
end
|
250
|
+
|
251
|
+
# office / officeAddress / district : String
|
252
|
+
# Subdivision name in the country or region for the address. In USA it's same as County.
|
253
|
+
|
254
|
+
def office_district
|
255
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "district")
|
256
|
+
end
|
257
|
+
|
258
|
+
# office / emailAddress : String
|
259
|
+
# Main contact email address for the office
|
260
|
+
|
261
|
+
def office_email_address
|
262
|
+
self.dig_for_string("agentSummary", "office", "emailAddress")
|
263
|
+
end
|
264
|
+
|
265
|
+
# office / faxNumber : String
|
266
|
+
# Fax number for the office
|
267
|
+
|
268
|
+
def office_fax_number
|
269
|
+
self.dig_for_string("agentSummary", "office", "faxNumber")
|
270
|
+
end
|
271
|
+
|
272
|
+
# office / officeAddress / formattedAddress : String
|
273
|
+
# Formatted address for display purpose
|
274
|
+
|
275
|
+
def office_formatted_address
|
276
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "formattedAddress")
|
277
|
+
end
|
278
|
+
|
279
|
+
# office / officeId : String
|
280
|
+
# Globally unique identifier assigned to an office by Realogy
|
281
|
+
|
282
|
+
def office_id
|
283
|
+
self.dig_for_string("agentSummary", "office", "officeId")
|
284
|
+
end
|
285
|
+
|
286
|
+
# office / officeAddress / latitude : Decimal
|
287
|
+
# Latitude of a location
|
288
|
+
|
289
|
+
def office_latitude
|
290
|
+
self.dig_for_decimal("agentSummary", "office", "officeAddress", "latitude")
|
291
|
+
end
|
292
|
+
|
293
|
+
# office / officeAddress / longitude : Decimal
|
294
|
+
# Longitude of a location
|
295
|
+
|
296
|
+
def office_longitude
|
297
|
+
self.dig_for_decimal("agentSummary", "office", "officeAddress", "longitude")
|
298
|
+
end
|
299
|
+
|
300
|
+
# office / name : String
|
301
|
+
# Name of the office
|
302
|
+
|
303
|
+
def office_name
|
304
|
+
self.dig_for_string("agentSummary", "office", "name")
|
305
|
+
end
|
306
|
+
|
307
|
+
# office / officeAddress / phoneNumber : String
|
308
|
+
# Main contact phone number for the office
|
309
|
+
|
310
|
+
def office_phone_number
|
311
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "phoneNumber")
|
312
|
+
end
|
313
|
+
|
314
|
+
# office / officeAddress / postalCode : String
|
315
|
+
# ZIP/Postal code
|
316
|
+
|
317
|
+
def office_postal_code
|
318
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "postalCode")
|
319
|
+
end
|
320
|
+
|
321
|
+
# office / officeAddress / stateProvince : String
|
322
|
+
# State/Province where the address is
|
323
|
+
|
324
|
+
def office_state_province
|
325
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "stateProvince")
|
326
|
+
end
|
327
|
+
|
328
|
+
# office / officeAddress / stateProvinceCode : String
|
329
|
+
# ISO code of the state
|
330
|
+
|
331
|
+
def office_state_province_code
|
332
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "stateProvinceCode")
|
333
|
+
end
|
334
|
+
|
335
|
+
# office / officeAddress / streetAddress : String
|
336
|
+
# Street address
|
337
|
+
|
338
|
+
def office_street_address
|
339
|
+
self.dig_for_string("agentSummary", "office", "officeAddress", "streetAddress")
|
340
|
+
end
|
341
|
+
|
342
|
+
# office / type : String
|
343
|
+
# Type of office (Main, Branch, etc.)
|
344
|
+
|
345
|
+
def office_type
|
346
|
+
self.dig_for_string("agentSummary", "office", "type")
|
347
|
+
end
|
348
|
+
|
189
349
|
# remarks : [Hash]
|
190
350
|
# A collection of Profile descriptions associated with the Agent
|
191
351
|
|
data/lib/realogy/version.rb
CHANGED
data/lib/realogy.rb
CHANGED
@@ -2,6 +2,7 @@ require "realogy/version"
|
|
2
2
|
require "realogy/railtie" if defined?(Rails)
|
3
3
|
require "realogy/app/models/application_record.rb"
|
4
4
|
require "realogy/app/models/data_sync.rb"
|
5
|
+
require "realogy/app/models/hash.rb"
|
5
6
|
require "realogy/app/models/realogy/entity.rb"
|
6
7
|
require "realogy/app/models/realogy/agent.rb"
|
7
8
|
require "realogy/app/models/realogy/company.rb"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: realogy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Edlund
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- lib/realogy/app/jobs/populate_realogy_entity_job.rb
|
120
120
|
- lib/realogy/app/models/application_record.rb
|
121
121
|
- lib/realogy/app/models/data_sync.rb
|
122
|
+
- lib/realogy/app/models/hash.rb
|
122
123
|
- lib/realogy/app/models/realogy/agent.rb
|
123
124
|
- lib/realogy/app/models/realogy/company.rb
|
124
125
|
- lib/realogy/app/models/realogy/entity.rb
|