real_page 2.3.1 → 2.3.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa8265c4b5a8552f52f2e226c134b97fcb4d421834021e5a26ed7cab8987feab
4
- data.tar.gz: a4a4245d3a1ccd7cec3a48b9238ce40da674f005422a714256f722d506585464
3
+ metadata.gz: 962d05d8387236a255f8f0fff3737dbefef4fbf77e659d8c29e42cc2f7790bc6
4
+ data.tar.gz: ff840760a1bf4cca6c5de287aa62f6cbae8e230149605b261630fa335b0efde0
5
5
  SHA512:
6
- metadata.gz: 4dcbf8f67e43dfd017a5e16faf312121315b117ea1555920e17a9d2dadd2e7490ccf0be115075adb394d4f57d31cc975a0893b3915c54c98da06bf112458eea2
7
- data.tar.gz: 97d9761e4ac388cd0fbc0fb9a40640056e3ec3f00a870efda6b2dae0a3386873489c0cc99afec915818fc9e4a84d2732aa08bb904336ddbfe502fc6a4c8d32c5
6
+ metadata.gz: 93e3815c06b588b269d78cd9e0418e15d737c509e3f4e03bff3f50ea32ecad57b3fe074c57a1d555859cc785fe0709252a4f8eead0dc24b279e77a37075adb12
7
+ data.tar.gz: 31c826347cd8315749c519f6e68c8484358933dc90780c1812146d809ba0a38af20a114b3cf75171b4060a64c34b24befa3fdc17a453bd69f807bff61063a618
data/CHANGELOG.txt CHANGED
@@ -1,3 +1,23 @@
1
+ Version 2.3.6, 2021-06-23
2
+ -------------------------
3
+ Update eventing gem: add unit_name, resident_id, move_in_report_type
4
+
5
+ Version 2.3.5, 2021-05-04
6
+ -------------------------
7
+ Add import_resident_id to prospect model
8
+
9
+ Version 2.3.4, 2021-04-23
10
+ -------------------------
11
+ Fix import_resident_id bug
12
+
13
+ Version 2.3.3, 2021-04-22
14
+ -------------------------
15
+ Add import_resident_id to lease model
16
+
17
+ Version 2.3.2, 2021-04-15
18
+ -------------------------
19
+ Fix date format
20
+
1
21
  Version 2.3.1, 2021-04-13
2
22
  -------------------------
3
23
  Fix request_params_start_date/end_date data type and remote_prospect_id mapping
data/Gemfile CHANGED
@@ -3,4 +3,4 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in real_page.gemspec
4
4
  gemspec
5
5
 
6
- gem 'event_tracker', git: 'https://github.com/apartmentlist/eventing.git', glob: 'clients/ruby/event_tracker.gemspec', tag: 'rb1.21.0'
6
+ gem 'event_tracker', git: 'https://github.com/apartmentlist/eventing.git', glob: 'clients/ruby/event_tracker.gemspec', tag: 'rb1.28.0'
data/README.md CHANGED
@@ -201,6 +201,7 @@ The response from [GetLeasesByTrafficSource](#realpagerequestgetleasesbytraffics
201
201
  * `type` [String]
202
202
  * `unit_id` [String]
203
203
  * `unit_number` [String]
204
+ * `import_resident_id` [String]
204
205
 
205
206
  The allowed values of `leasetype` are set as constants in the `RealPage::Model::Lease::Type` module:
206
207
 
@@ -275,6 +276,8 @@ The main object representing a renter. It will be found on a
275
276
  * `site_id` [Integer]
276
277
  * `ssn_encrypted` [String]
277
278
  * `ssn` [String]
279
+ * `import_resident_id` [String]
280
+
278
281
 
279
282
  #### RealPage::Model::Quote
280
283
 
@@ -23,6 +23,7 @@ module RealPage
23
23
  type
24
24
  unit_id
25
25
  unit_number
26
+ import_resident_id
26
27
  ]
27
28
 
28
29
  # Possible values for leasetype, provided as a convenience
@@ -29,6 +29,7 @@ module RealPage
29
29
  relationship_id
30
30
  ssn
31
31
  ssn_encrypted
32
+ import_resident_id
32
33
  ]
33
34
  end
34
35
  end
@@ -10,7 +10,9 @@ module RealPage
10
10
 
11
11
  def self.track_pms_resident_event(
12
12
  remote_lease_id: nil,
13
+ import_resident_id:,
13
14
  resident_type:,
15
+ api_name:,
14
16
  request_params:,
15
17
  move_in_date: nil,
16
18
  lease_to: nil,
@@ -19,6 +21,8 @@ module RealPage
19
21
  last_name_present: false,
20
22
  email_present: false,
21
23
  phones_count:,
24
+ unit_name:,
25
+ resident_id: nil,
22
26
  error: nil
23
27
  )
24
28
  EventTracker.track_process_events(name: IMPORT_PMS_RESIDENT_EVENT) do |events|
@@ -34,13 +38,13 @@ module RealPage
34
38
  service: RealPage.config.app_name
35
39
  ),
36
40
  remote_lease_id: remote_lease_id,
37
- import_resident_id: import_resident_id(request_params[:import_id]),
41
+ import_resident_id: import_resident_id,
38
42
  resident_type: resident_type,
39
- api_name: 'GetLeasesByTrafficSource',
43
+ api_name: api_name,
40
44
  request_params: EventTracker::ResourceFactory::PmsResident.build_request_params(
41
45
  start_date: (request_params[:start_date] || '').to_time,
42
- end_date: (request_params[:start_date] || '').to_time,
43
- prospect_id: request_params[:prospect_id],
46
+ end_date: (request_params[:end_date] || '').to_time,
47
+ prospect_id: request_params[:guest_card_id],
44
48
  pmc_id: request_params[:pmc_id],
45
49
  remote_id: request_params[:site_id],
46
50
  traffic_source_id: request_params[:traffic_source_id]
@@ -52,6 +56,9 @@ module RealPage
52
56
  last_name_present: last_name_present,
53
57
  email_present: email_present,
54
58
  phones_count: phones_count,
59
+ unit_name: unit_name,
60
+ resident_id: resident_id,
61
+ move_in_report_type: 'real_page_api',
55
62
  error: error
56
63
  )
57
64
  )
@@ -80,7 +87,7 @@ module RealPage
80
87
  service: RealPage.config.app_name
81
88
  ),
82
89
  remote_lease_id: remote_lease_id,
83
- import_resident_id: import_resident_id(request_params[:import_id]),
90
+ import_resident_id: request_params[:import_resident_id] || '',
84
91
  resident_type: resident_type,
85
92
  api_name: 'ProspectSearch',
86
93
  request_params: EventTracker::ResourceFactory::PmsProspect.build_request_params(
@@ -91,17 +98,12 @@ module RealPage
91
98
  contact_date: contact_date,
92
99
  contact_source: contact_source,
93
100
  remote_prospect_id: remote_prospect_id,
101
+ move_in_report_type: 'real_page_api',
94
102
  error: error
95
103
  )
96
104
  )
97
105
  end
98
106
  end
99
-
100
- private
101
-
102
- def self.import_resident_id(import_id)
103
- "#{import_id}-#{SecureRandom.alphanumeric(15)}"
104
- end
105
107
  end
106
108
  end
107
109
  end
@@ -11,6 +11,7 @@ module RealPage
11
11
  def initialize(response, request_params, request_name)
12
12
  @response = response
13
13
  @request_params = request_params
14
+ @request_name = request_name
14
15
  end
15
16
 
16
17
  def validate!
@@ -20,21 +21,26 @@ module RealPage
20
21
 
21
22
  private
22
23
 
23
- attr_reader :response, :request_params
24
+ attr_reader :response, :request_params, :request_name
24
25
 
25
26
  def send_successful_response_data_to_snowflake
26
27
  leases.each do |lease|
28
+ lease['importresidentid'] = import_resident_id
27
29
  Utils::SnowflakeEventTracker.track_pms_resident_event(
28
30
  remote_lease_id: lease['leaseid'],
31
+ import_resident_id: lease['importresidentid'],
29
32
  resident_type: 'PRIMARY',
33
+ api_name: request_name,
30
34
  request_params: request_params,
31
- move_in_date: DateTime.strptime(lease['moveindate'], '%m/%d/%y').to_time,
32
- lease_to: DateTime.strptime(lease['leaseenddate'], '%m/%d/%y').to_time,
33
- lease_from: DateTime.strptime(lease['leasebegindate'], '%m/%d/%y').to_time,
35
+ move_in_date: format_date(lease['moveindate']),
36
+ lease_to: format_date(lease['leaseenddate']),
37
+ lease_from: format_date(lease['leasebegindate']),
34
38
  first_name_present: !lease['firstname'].blank?,
35
39
  last_name_present: !lease['lastname'].blank?,
36
40
  email_present: !lease['email'].blank?,
37
- phones_count: phones_count(lease)
41
+ phones_count: phones_count(lease),
42
+ unit_name: lease['unitnumber'],
43
+ resident_id: lease['residentmemberid']
38
44
  )
39
45
  end
40
46
  end
@@ -60,6 +66,18 @@ module RealPage
60
66
  end
61
67
  count
62
68
  end
69
+
70
+ def format_date(field)
71
+ return nil if field.blank?
72
+
73
+ # The date string from the response data is in the format of "6/1/2015 12:00:00 AM"
74
+ datetime_format = '%m/%d/%Y %I:%M:%S %p'
75
+ DateTime.strptime(field, datetime_format).to_time.utc
76
+ end
77
+
78
+ def import_resident_id
79
+ "#{request_params[:import_id]}-#{SecureRandom.alphanumeric(15)}"
80
+ end
63
81
  end
64
82
  end
65
83
  end
@@ -11,6 +11,7 @@ module RealPage
11
11
  def initialize(response, request_params, request_name)
12
12
  @response = response
13
13
  @request_params = request_params
14
+ @request_name = request_name
14
15
  @guest_cards = guest_cards
15
16
  end
16
17
 
@@ -21,7 +22,7 @@ module RealPage
21
22
 
22
23
  private
23
24
 
24
- attr_reader :response, :request_params, :guest_cards
25
+ attr_reader :response, :request_params, :request_name, :guest_cards
25
26
 
26
27
  def send_data_to_snowflake
27
28
  guest_cards.each do |guest_card|
@@ -33,13 +34,17 @@ module RealPage
33
34
 
34
35
  def send_roommates_data_to_snowflake(prospects)
35
36
  prospects.each do |prospect|
37
+ prospect['ImportResidentId'] = import_resident_id
36
38
  Utils::SnowflakeEventTracker.track_pms_resident_event(
39
+ import_resident_id: prospect['ImportResidentId'],
37
40
  resident_type: 'ROOMMATE',
41
+ api_name: request_name,
38
42
  request_params: request_params,
39
43
  first_name_present: !prospect['FirstName'].blank?,
40
44
  last_name_present: !prospect['LastName'].blank?,
41
45
  email_present: !prospect['Email'].blank?,
42
- phones_count: phones_count(prospect)
46
+ phones_count: phones_count(prospect),
47
+ unit_name: ''
43
48
  )
44
49
  end
45
50
  end
@@ -47,9 +52,9 @@ module RealPage
47
52
  def send_prospects_data_to_snowflake(prospects, guest_card)
48
53
  prospects.each do |prospect|
49
54
  Utils::SnowflakeEventTracker.track_pms_prospect_event(
50
- resident_type: 'ROOMMATE',
55
+ resident_type: 'PRIMARY',
51
56
  request_params: request_params,
52
- contact_date: DateTime.parse(guest_card['DateContact']).to_time,
57
+ contact_date: format_date(guest_card['CreateDate']),
53
58
  contact_source: guest_card['PrimaryLeadSource'],
54
59
  remote_prospect_id: guest_card['GuestCardID']
55
60
  )
@@ -88,6 +93,15 @@ module RealPage
88
93
  end
89
94
  phone_numbers_hash.select { |phone_number| !phone_number['Number'].blank? }.length
90
95
  end
96
+
97
+ def format_date(field)
98
+ return nil if field.blank?
99
+ DateTime.parse(field).to_time
100
+ end
101
+
102
+ def import_resident_id
103
+ "#{request_params[:import_id]}-#{SecureRandom.alphanumeric(15)}"
104
+ end
91
105
  end
92
106
  end
93
107
  end
@@ -41,6 +41,7 @@ module RealPage
41
41
  def initialize(response, request_params, request_name)
42
42
  @response = response
43
43
  @request_params = request_params
44
+ @request_name = request_name
44
45
  end
45
46
 
46
47
  # @raise [RealPage::Error::RequestFault] if the response has an error
@@ -53,7 +54,7 @@ module RealPage
53
54
 
54
55
  private
55
56
 
56
- attr_reader :response, :request_params
57
+ attr_reader :response, :request_params, :request_name
57
58
 
58
59
  def contents
59
60
  body = response['s:Envelope']['s:Body']
@@ -82,9 +83,12 @@ module RealPage
82
83
 
83
84
  def send_request_error_to_snowflake
84
85
  Utils::SnowflakeEventTracker.track_pms_resident_event(
86
+ import_resident_id: request_params[:import_id] || '',
87
+ api_name: request_name,
85
88
  resident_type: 'PRIMARY',
86
89
  request_params: request_params,
87
90
  phones_count: 0,
91
+ unit_name: '',
88
92
  error: error_messages
89
93
  )
90
94
  end
@@ -64,9 +64,12 @@ module RealPage
64
64
 
65
65
  def send_move_in_report_error_to_snowflake
66
66
  Utils::SnowflakeEventTracker.track_pms_resident_event(
67
+ import_resident_id: request_params[:import_id] || '',
68
+ api_name: request_name,
67
69
  resident_type: 'PRIMARY',
68
70
  request_params: request_params,
69
71
  phones_count: 0,
72
+ unit_name: '',
70
73
  error: error_message
71
74
  )
72
75
  end
@@ -78,16 +81,19 @@ module RealPage
78
81
 
79
82
  def send_roommate_error_to_snowflake
80
83
  Utils::SnowflakeEventTracker.track_pms_resident_event(
84
+ import_resident_id: request_params[:import_id] || '',
85
+ api_name: request_name,
81
86
  resident_type: 'ROOMMATE',
82
87
  request_params: request_params,
83
88
  phones_count: 0,
89
+ unit_name: '',
84
90
  error: error_message
85
91
  )
86
92
  end
87
93
 
88
94
  def send_prospect_error_to_snowflake
89
95
  Utils::SnowflakeEventTracker.track_pms_prospect_event(
90
- resident_type: 'ROOMMATE',
96
+ resident_type: 'PRIMARY',
91
97
  request_params: request_params,
92
98
  error: error_message
93
99
  )
@@ -1,3 +1,3 @@
1
1
  module RealPage
2
- VERSION = '2.3.1'
2
+ VERSION = '2.3.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: real_page
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Collier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-13 00:00:00.000000000 Z
11
+ date: 2021-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -283,8 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
283
283
  - !ruby/object:Gem::Version
284
284
  version: '0'
285
285
  requirements: []
286
- rubyforge_project:
287
- rubygems_version: 2.7.6.2
286
+ rubygems_version: 3.1.6
288
287
  signing_key:
289
288
  specification_version: 4
290
289
  summary: A ruby client for RealPage Exchange