real_page 2.3.1 → 2.3.6

Sign up to get free protection for your applications and to get access to all the features.
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