moxiworks_platform 0.10.1 → 0.10.2

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
  SHA1:
3
- metadata.gz: 82b5c85cf1bfe190344e072b8d07a22f7e83e1ef
4
- data.tar.gz: 169e7df98ab8afbcc2194a7fbbec5711abad3b5a
3
+ metadata.gz: 2c3a36316384942e54ebdc8a4bbe8a366646392d
4
+ data.tar.gz: a5f6651b3bda6dd6ce27424db1cb8fc7ab857cb6
5
5
  SHA512:
6
- metadata.gz: 9e988313ba11d00ccea908ba028b5d9b8a43ca2363be9d3d3b6512b2442bea96bbfaadd66135bc4149e4e2bf90482951f73475e925da48a94ba85ec0559713a4
7
- data.tar.gz: 844c67fbda0d00b1cf5a5728552063693822e3631edc034b37ab49d583fcbbe3953c60b322a3fe795d35d583b3eacddd3fc8444992d801ab3d62189dbafcc537
6
+ metadata.gz: 707c1d68ecf7f5ea97b456330f1504ef3b6d065378b0d9a106aca6ad611da912ae77af5609fc7638c1b166076a65cb4bf8c57995f22e0cb5a1ad7d3550baa83f
7
+ data.tar.gz: 2895bcc805bd0e6ed0377097c1ec00e8c2ff6303b592cb11b1183efb7839fc00b62d9f8da91380f3a02a704d125c24d6be4f594ea3fb3fb4c592635621014f78
@@ -1,4 +1,5 @@
1
1
  require 'moxiworks_platform/version'
2
+ require 'moxiworks_platform/session'
2
3
  require 'moxiworks_platform/config'
3
4
  require 'moxiworks_platform/exception'
4
5
  require 'moxiworks_platform/resource'
@@ -56,7 +56,7 @@ module MoxiworksPlatform
56
56
  #
57
57
  # This will be a single digit integer that can be [1,2,3,4,5].
58
58
  # For more information on BuyerTransaction stages see
59
- # <a href='https://moxiworks-platform.github.io/#buyertransaction-stages'>The Moxi Works Platform Documentation</a>
59
+ # {https://moxiworks-platform.github.io/#buyertransaction-stages The Moxi Works Platform Documentation}
60
60
  #
61
61
  # @return [Integer] the stage the BuyerTransaction is in.
62
62
  attr_accessor :stage
@@ -71,7 +71,7 @@ module MoxiworksPlatform
71
71
  # This will be an enumerated string that can be can be
72
72
  # 'initialized', 'configured' , 'active' , 'pending' or 'complete'
73
73
  # For more information on BuyerTransaction stages see
74
- # <a href='https://moxiworks-platform.github.io/#buyertransaction-stages'>The Moxi Works Platform Documentation</a>
74
+ # {https://moxiworks-platform.github.io/#buyertransaction-stages The Moxi Works Platform Documentation}
75
75
  #
76
76
  #
77
77
  # @return [String, enumerated] current state of BuyerTransaction
@@ -168,7 +168,7 @@ module MoxiworksPlatform
168
168
 
169
169
  # @!attribute start_timestamp
170
170
  #
171
- # **NON MLS TRANSACTIONS ONLY ** this is the Unix timestamp
171
+ # this is the Unix timestamp
172
172
  # representing the date the agent initiated transaction discussions
173
173
  # with the client.
174
174
  #
@@ -256,7 +256,7 @@ module MoxiworksPlatform
256
256
  #
257
257
  # In order to promote a BuyerTransaction to the next stage, set the
258
258
  # promote_transaction attribute to true. For more information about
259
- # BuyerTransaction stages, see <a href='https://moxiworks-platform.github.io/#promoting-buyertransaction-stage>The Moxi Works Platform Documentation</a>.
259
+ # BuyerTransaction stages, see {https://moxiworks-platform.github.io/#promoting-buyertransaction-stage The Moxi Works Platform Documentation}.
260
260
  # promote_transaction is only available for BuyerTransaction updates.
261
261
  # Newly created BuyerTransaction objects will automatically be created in
262
262
  # stage 3 (active)
@@ -290,9 +290,9 @@ module MoxiworksPlatform
290
290
  # @option opts [String] :area_of_interest string representing a locality that the client has expressed interest in purchasing a property within
291
291
  # @option opts [Integer or Float] :min_baths minimum desired number of bathrooms in potential properties
292
292
  # @option opts [Integer or Float] :max_baths maximum desired number of bathrooms in potential properties
293
- # @option opts [Boolean] :is_mls_transaction Whether the property being purchased is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS. If is_mls_transaction is false, then start_timestamp should be populated.
293
+ # @option opts [Boolean] :is_mls_transaction Whether the property being purchased is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS.
294
294
  # @option opts [String] :mls_number mls number associated with the transaction -- mls_number should be populated only if is_mls_transaction is true.
295
- # @option opts [Integer] :start_timestamp Unix timestamp representing the date the property was put on sale -- start_timestamp should be populated only if is_mls_transaction is false.
295
+ # @option opts [Integer] :start_timestamp Unix timestamp representing the date the agent initiated transaction discussions with the client.
296
296
  # @option opts [Float] :commission_percentage what percentage the commission is if percentage based -- A BuyerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
297
297
  # @option opts [Integer] :commission_flat_fee how much the commission is if flat fee -- A BuyerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
298
298
  # @option opts [Integer] :target_price target price associated with the transaction if using a target price rather than price range
@@ -304,7 +304,7 @@ module MoxiworksPlatform
304
304
  # agent_identifier:'testis@testomatical.com',
305
305
  # moxi_works_contact_id:'deadbeef-dead-beef-bad4-feedfacebad',
306
306
  # notes: 'foo deeaz',
307
- # name: 'whateverz'
307
+ # transaction_name: 'whateverz'
308
308
  # address: '1234 there ave',
309
309
  # city: 'cityville'
310
310
  # state: 'provinceland',
@@ -440,9 +440,9 @@ module MoxiworksPlatform
440
440
  # @option opts [String] :area_of_interest string representing a locality that the client has expressed interest in purchasing a property within
441
441
  # @option opts [Integer or Float] :min_baths minimum desired number of bathrooms in potential properties
442
442
  # @option opts [Integer or Float] :max_baths maximum desired number of bathrooms in potential properties
443
- # @option opts [Boolean] :is_mls_transaction Whether the property being purchased is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS. If is_mls_transaction is false, then start_timestamp should be populated.
443
+ # @option opts [Boolean] :is_mls_transaction Whether the property being purchased is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS.
444
444
  # @option opts [String] :mls_number mls number associated with the transaction -- mls_number should be populated only if is_mls_transaction is true.
445
- # @option opts [Integer] :start_timestamp Unix timestamp representing the date the property was put on sale -- start_timestamp should be populated only if is_mls_transaction is false.
445
+ # @option opts [Integer] :start_timestamp Unix timestamp representing the date the agent initiated transaction discussions with the client.
446
446
  # @option opts [Float] :commission_percentage what percentage the commission is if percentage based -- A BuyerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
447
447
  # @option opts [Integer] :commission_flat_fee how much the commission is if flat fee -- A BuyerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
448
448
  # @option opts [Integer] :target_price target price associated with the transaction if using a target price rather than price range
@@ -457,7 +457,7 @@ module MoxiworksPlatform
457
457
  # agent_identifier:'testis@testomatical.com',
458
458
  # moxi_works_transaction_id:'deadbeef-dead-beef-bad4-feedfacebad',
459
459
  # notes: 'foo deeaz',
460
- # name: 'whateverz'
460
+ # transaction_name: 'whateverz'
461
461
  # address: '1234 there ave',
462
462
  # city: 'cityville'
463
463
  # state: 'provinceland',
@@ -19,11 +19,23 @@ module MoxiworksPlatform
19
19
  # @return [String] your system's unique ID for the contact
20
20
  attr_accessor :partner_contact_id
21
21
 
22
+ # @!attribute anniversary
23
+ # the Contact's anniversary displayed as a Unix Timestamp. This will be empty if the data is unavailable
24
+ #
25
+ # @return [Integer or nil] -- Unix Timestamp
26
+ attr_accessor :anniversary
27
+
28
+ # @!attribute birthday
29
+ # the Contact's birthday displayed as a Unix Timestamp. This will be empty if the data is unavailable
30
+ #
31
+ # @return [Integer or nil] -- Unix Timestamp
32
+ attr_accessor :birthday
33
+
22
34
  # @!attribute contact_name
23
35
  # the full name of this Contact
24
36
  #
25
37
  # @return [String] -- Default ''
26
- attr_accessor :contact_name
38
+ attr_accessor :contact_namer
27
39
 
28
40
  # @!attribute gender
29
41
  # the gender of this Contact. the first initial of either gender type may
@@ -46,6 +58,12 @@ module MoxiworksPlatform
46
58
  # @return [String] -- Default ''
47
59
  attr_accessor :home_city
48
60
 
61
+ # @!attribute home_purchase_anniversary
62
+ # the anniversary of the purchase of contact's home displayed as a Unix Timestamp. This will be empty if the data is unavailable
63
+ #
64
+ # @return [Integer or nil] -- Unix Timestamp
65
+ attr_accessor :home_purchase_anniversary
66
+
49
67
  # @!attribute home_state
50
68
  # the state in which the residence of this Contact is located
51
69
  #
@@ -74,6 +92,12 @@ module MoxiworksPlatform
74
92
  # @return [String] -- Default ''
75
93
  attr_accessor :home_country
76
94
 
95
+ # @!attribute is_new_contact
96
+ # whether the Contact is considered new
97
+ #
98
+ # @return [Boolean]
99
+ attr_accessor :is_new_contact
100
+
77
101
  # @!attribute job_title
78
102
  # the specific job title this contact has; ex: 'Senior VP of Operations'
79
103
  #
@@ -1,26 +1,24 @@
1
1
  module MoxiworksPlatform
2
2
  # = Moxi Works Platform Event
3
3
  class Event < MoxiworksPlatform::Resource
4
- # @!attribute moxi_works_agent_id
5
- # moxi_works_agent_id is the Moxi Works Platform ID of the agent which a event is
6
- # or is to be associated with.
7
- #
8
- # this must be set for any Moxi Works Platform transaction
9
- #
10
- # @return [String] the Moxi Works Platform ID of the agent
11
- attr_accessor :moxi_works_agent_id
12
4
 
13
- # @!attribute partner_event_id
14
- # your system's event ID for the event
5
+ # @!attribute all_day
6
+ # whether the event is an all day event
15
7
  #
16
- # @return [String] representing the ID of the event in your system
17
- attr_accessor :partner_event_id
8
+ # @return [Boolean]
9
+ attr_accessor :all_day
18
10
 
19
- # @!attribute event_subject
20
- # a short description of the event
11
+ # @!attribute attendees
12
+ # a comma separated list of attendee IDs
21
13
  #
22
14
  # @return [String]
23
- attr_accessor :event_subject
15
+ attr_accessor :attendees
16
+
17
+ # @!attribute event_end
18
+ # a unix timestamp representing the end time of the event
19
+ #
20
+ # @return [Integer]
21
+ attr_writer :event_end
24
22
 
25
23
  # @!attribute location
26
24
  # a short description of the location of the event
@@ -28,17 +26,17 @@ module MoxiworksPlatform
28
26
  # @return [String]
29
27
  attr_accessor :event_location
30
28
 
31
- # @!attribute note
32
- # a more detailed description of the event
29
+ # @!attribute event_start
30
+ # a unix timestamp representing the start time of the event
33
31
  #
34
- # @return [String]
35
- attr_accessor :note
32
+ # @return [Integer]
33
+ attr_writer :event_start
36
34
 
37
- # @!attribute remind_minutes_before
38
- # how many minutes before the event a reminder should be sent
35
+ # @!attribute event_subject
36
+ # a short description of the event
39
37
  #
40
- # @return [Integer]
41
- attr_writer :remind_minutes_before
38
+ # @return [String]
39
+ attr_accessor :event_subject
42
40
 
43
41
  # @!attribute is_meeting
44
42
  # whether this event is a meeting
@@ -46,35 +44,38 @@ module MoxiworksPlatform
46
44
  # @return [Boolean]
47
45
  attr_accessor :is_meeting
48
46
 
49
- # @!attribute event_start
50
- # a unix timestamp representing the start time of the event
47
+ # @!attribute moxi_works_agent_id
48
+ # moxi_works_agent_id is the Moxi Works Platform ID of the agent which a event is
49
+ # or is to be associated with.
51
50
  #
52
- # @return [Integer]
53
- attr_writer :event_start
51
+ # this must be set for any Moxi Works Platform transaction
52
+ #
53
+ # @return [String] the Moxi Works Platform ID of the agent
54
+ attr_accessor :moxi_works_agent_id
54
55
 
55
- # @!attribute event_end
56
- # a unix timestamp representing the end time of the event
56
+ # @!attribute note
57
+ # a more detailed description of the event
57
58
  #
58
- # @return [Integer]
59
- attr_writer :event_end
59
+ # @return [String]
60
+ attr_accessor :note
60
61
 
61
- # @!attribute all_day
62
- # whether the event is an all day event
62
+ # @!attribute partner_event_id
63
+ # your system's event ID for the event
63
64
  #
64
- # @return [Boolean]
65
- attr_accessor :all_day
65
+ # @return [String] representing the ID of the event in your system
66
+ attr_accessor :partner_event_id
66
67
 
67
- # @!attribute required_attendees
68
- # a comma separated list of attendee IDs
68
+ # @!attribute remind_minutes_before
69
+ # how many minutes before the event a reminder should be sent
69
70
  #
70
- # @return [String]
71
- attr_accessor :required_attendees
71
+ # @return [Integer]
72
+ attr_writer :remind_minutes_before
72
73
 
73
- # @!attribute optional_attendees
74
- # a comma separated list of attendee IDs
74
+ # @!attribute send_reminder
75
+ # whether to send a reminder to attendees
75
76
  #
76
- # @return [String]
77
- attr_accessor :optional_attendees
77
+ # @return [Boolean]
78
+ attr_accessor :send_reminder
78
79
 
79
80
  # Creates a new Event in Moxi Works Platform
80
81
  # @param [Hash] opts named parameter Hash
@@ -2,19 +2,6 @@ module MoxiworksPlatform
2
2
  # = Moxi Works Platform Listing
3
3
  class Listing < MoxiworksPlatform::Resource
4
4
 
5
- # @!attribute moxi_works_listing_id
6
- # moxi_works_listing_id is the Moxi Works Platform ID of the listing
7
- #
8
- # this must be set for any Moxi Works Platform transaction
9
- #
10
- # @return [String] the Moxi Works Platform ID of the listing
11
- attr_accessor :moxi_works_listing_id
12
-
13
- # @!attribute lot_size_acres
14
- #
15
- # @return [float] the property acreage of the listing
16
- attr_accessor :lot_size_acres
17
-
18
5
  # @!attribute address
19
6
  #
20
7
  # @return [String] street address of property
@@ -25,35 +12,15 @@ module MoxiworksPlatform
25
12
  # @return [String] a second line for street address if needed
26
13
  attr_accessor :address2
27
14
 
28
- # @!attribute city
29
- #
30
- # @return [String] city of property address
31
- attr_accessor :city
32
-
33
- # @!attribute state
34
- #
35
- # @return [String] state of property address
36
- attr_accessor :state_or_province
37
-
38
- # @!attribute postal_code
39
- #
40
- # @return [String] zip code of property address
41
- attr_accessor :postal_code
42
-
43
- # @!attribute county_or_parish
15
+ # @!attribute agent_created_listing
44
16
  #
45
- # @return [String] county of property address
46
- attr_accessor :county_or_parish
17
+ # @return [Boolean] whether the agent created the listing
18
+ attr_accessor :agent_created_listing
47
19
 
48
- # @!attribute latitude
49
- #
50
- # @return [String] latitude of the property
51
- attr_accessor :latitude
52
-
53
- # @!attribute longitude
20
+ # @!attribute association_fee
54
21
  #
55
- # @return [String] longitude of the property
56
- attr_accessor :longitude
22
+ # @return [Integer] HOA fees for property
23
+ attr_accessor :association_fee
57
24
 
58
25
  # @!attribute bathrooms_full
59
26
  #
@@ -95,36 +62,26 @@ module MoxiworksPlatform
95
62
  # @return [Integer] number of bedrooms
96
63
  attr_accessor :bedrooms_total
97
64
 
98
- # @!attribute public_remarks
65
+ # @!attribute city
99
66
  #
100
- # @return [String] agent generated comments regarding the property
101
- attr_accessor :public_remarks
67
+ # @return [String] city of property address
68
+ attr_accessor :city
102
69
 
103
- # @!attribute modification_timestamp
70
+ # @!attribute county_or_parish
104
71
  #
105
- # @return [String] string representing date in format 'MM/DD/YYYY'
106
- attr_accessor :modification_timestamp
72
+ # @return [String] county of property address
73
+ attr_accessor :county_or_parish
107
74
 
108
- # @!attribute internet_address_display_yn
75
+ # @!attribute created_date
109
76
  #
110
- # @return [Boolean] whether to display the address publicly
111
- attr_accessor :internet_address_display_yn
77
+ # @return [String] string representing date in format 'MM/DD/YYYY'
78
+ attr_accessor :created_date
112
79
 
113
80
  # @!attribute days_on_market
114
81
  #
115
82
  # @return [Integer] days listing has been on market
116
83
  attr_accessor :days_on_market
117
84
 
118
- # @!attribute listing_contract_date
119
- #
120
- # @return [String] string representing date in format 'MM/DD/YYYY'
121
- attr_accessor :listing_contract_date
122
-
123
- # @!attribute created_date
124
- #
125
- # @return [String] string representing date in format 'MM/DD/YYYY'
126
- attr_accessor :created_date
127
-
128
85
  # @!attribute elementary_school
129
86
  #
130
87
  # @return [String] elementary school for the property
@@ -135,20 +92,30 @@ module MoxiworksPlatform
135
92
  # @return [Integer] garage spaces for the property
136
93
  attr_accessor :garage_spaces
137
94
 
138
- # @!attribute waterfront_yn
139
- #
140
- # @return [Boolean] whether the property has waterfront acreage
141
- attr_accessor :waterfront_yn
142
-
143
95
  # @!attribute high_school
144
96
  #
145
97
  # @return [String] High school for property
146
98
  attr_accessor :high_school
147
99
 
148
- # @!attribute association_fee
100
+ # @!attribute internet_address_display_yn
149
101
  #
150
- # @return [Integer] HOA fees for property
151
- attr_accessor :association_fee
102
+ # @return [Boolean] whether to display the address publicly
103
+ attr_accessor :internet_address_display_yn
104
+
105
+ # @!attribute internet_entire_listing_display_yn
106
+ #
107
+ # @return [Boolean] whether to display listing on internet
108
+ attr_accessor :internet_entire_listing_display_yn
109
+
110
+ # @!attribute latitude
111
+ #
112
+ # @return [String] latitude of the property
113
+ attr_accessor :latitude
114
+
115
+ # @!attribute list_agent_full_name
116
+ #
117
+ # @return [String] name of listing agent
118
+ attr_accessor :list_agent_full_name
152
119
 
153
120
  # @!attribute list_office_name
154
121
  #
@@ -160,15 +127,47 @@ module MoxiworksPlatform
160
127
  # @return [Integer] listed price
161
128
  attr_accessor :list_price
162
129
 
130
+ # @!attribute list_office_aor
131
+ #
132
+ # @return [String] MLS the listing is listed with
133
+ attr_accessor :list_office_aor
134
+
135
+ # @!attribute listing_contract_date
136
+ #
137
+ # @return [String] string representing date in format 'MM/DD/YYYY'
138
+ attr_accessor :listing_contract_date
139
+
163
140
  # @!attribute listing_id
164
141
  #
165
142
  # @return [String] the mls number associated with the listing
166
143
  attr_accessor :listing_id
167
144
 
168
- # @!attribute list_agent_full_name
145
+ # @!attribute listing_images
169
146
  #
170
- # @return [String] name of listing agent
171
- attr_accessor :list_agent_full_name
147
+ # @return [Array] array of image Hashes in the format
148
+ # {
149
+ # image_thumb_url: [String] url to thumbail size image (smallest),
150
+ # image_small_url: [String] url to small size image (small),
151
+ # image_full_url: [String] url to full size image (medium),
152
+ # image_gallery_url: [String] url to gallery size image (large),
153
+ # image_raw_url: [String] url to raw image (largest)
154
+ # }
155
+ attr_accessor :listing_images
156
+
157
+ # @!attribute living_area
158
+ #
159
+ # @return [Integer] square footage of the building
160
+ attr_accessor :living_area
161
+
162
+ # @!attribute longitude
163
+ #
164
+ # @return [String] longitude of the property
165
+ attr_accessor :longitude
166
+
167
+ # @!attribute lot_size_acres
168
+ #
169
+ # @return [float] the property acreage of the listing
170
+ attr_accessor :lot_size_acres
172
171
 
173
172
  # @!attribute lot_size_square_feet
174
173
  #
@@ -180,15 +179,18 @@ module MoxiworksPlatform
180
179
  # @return [String] Middle school for property
181
180
  attr_accessor :middle_or_junior_school
182
181
 
183
- # @!attribute list_office_aor
182
+ # @!attribute moxi_works_listing_id
183
+ # moxi_works_listing_id is the Moxi Works Platform ID of the listing
184
184
  #
185
- # @return [String] MLS the listing is listed with
186
- attr_accessor :list_office_aor
185
+ # this must be set for any Moxi Works Platform transaction
186
+ #
187
+ # @return [String] the Moxi Works Platform ID of the listing
188
+ attr_accessor :moxi_works_listing_id
187
189
 
188
- # @!attribute internet_entire_listing_display_yn
190
+ # @!attribute modification_timestamp
189
191
  #
190
- # @return [Boolean] whether to display listing on internet
191
- attr_accessor :internet_entire_listing_display_yn
192
+ # @return [String] string representing date in format 'MM/DD/YYYY'
193
+ attr_accessor :modification_timestamp
192
194
 
193
195
  # @!attribute on_market
194
196
  #
@@ -200,11 +202,36 @@ module MoxiworksPlatform
200
202
  # @return [Boolean] whether there is a pool
201
203
  attr_accessor :pool_yn
202
204
 
205
+ # @!attribute postal_code
206
+ #
207
+ # @return [String] zip code of property address
208
+ attr_accessor :postal_code
209
+
210
+ # @!attribute property_features
211
+ #
212
+ # @return [Hash] property features associated with this listing
213
+ attr_accessor :property_features
214
+
203
215
  # @!attribute property_type
204
216
  #
205
217
  # @return [String] type of property, could be 'Rental' 'Residential' 'Condo-Coop' 'Townhouse' 'Land' 'Multifamily'
206
218
  attr_accessor :property_type
207
219
 
220
+ # @!attribute public_remarks
221
+ #
222
+ # @return [String] agent generated comments regarding the property
223
+ attr_accessor :public_remarks
224
+
225
+ # @!attribute single_story
226
+ #
227
+ # @return [Boolean] whether the building is single story
228
+ attr_accessor :single_story
229
+
230
+ # @!attribute state
231
+ #
232
+ # @return [String] state of property address
233
+ attr_accessor :state_or_province
234
+
208
235
  # @!attribute tax_annual_amount
209
236
  #
210
237
  # @return [Integer] Annual property tax for the property
@@ -215,38 +242,21 @@ module MoxiworksPlatform
215
242
  # @return [Integer] assessment year that property_tax reflects
216
243
  attr_accessor :tax_year
217
244
 
218
- # @!attribute single_story
219
- #
220
- # @return [Boolean] whether the building is single story
221
- attr_accessor :single_story
222
-
223
- # @!attribute living_area
224
- #
225
- # @return [Integer] square footage of the building
226
- attr_accessor :living_area
227
-
228
245
  # @!attribute view_yn
229
246
  #
230
247
  # @return [Boolean] whether the property has a view
231
248
  attr_accessor :view_yn
232
249
 
250
+ # @!attribute waterfront_yn
251
+ #
252
+ # @return [Boolean|nil] whether the property has waterfront acreage
253
+ attr_accessor :waterfront_yn
254
+
233
255
  # @!attribute year_built
234
256
  #
235
257
  # @return [Integer] year the building was built
236
258
  attr_accessor :year_built
237
259
 
238
- # @!attribute listing_images
239
- #
240
- # @return [Array] array of image Hashes in the format
241
- # {
242
- # image_thumb_url: [String] url to thumbail size image (smallest),
243
- # image_small_url: [String] url to small size image (small),
244
- # image_full_url: [String] url to full size image (medium),
245
- # image_gallery_url: [String] url to gallery size image (large),
246
- # image_raw_url: [String] url to raw image (largest)
247
- # }
248
- attr_accessor :listing_images
249
-
250
260
 
251
261
 
252
262
  # Find a listing on the Moxi Works Platform
@@ -295,12 +305,12 @@ module MoxiworksPlatform
295
305
  #
296
306
  # optional Search parameters
297
307
  #
298
- # @option opts [Integer] :page_number the page of results to return
308
+ # @option opts [String] :last_moxi_works_listing_id For multi-page responses (where the response value 'last_page' is false), send the listing ID of the last Listing in the previous page.
309
+ # @option opts [Hash] :previous_page For multi-page responses (where the response value 'last_page' is false), send the listing ID of the last Listing in the previous page.
299
310
  #
300
311
  # @return [Hash] with the format:
301
312
  # {
302
- # page_number: [Integer],
303
- # total_pages: [Integer],
313
+ # last_page: [Boolean],
304
314
  # listings: [Array] containing MoxiworkPlatform::Listing objects
305
315
  # }
306
316
  #
@@ -327,12 +337,24 @@ module MoxiworksPlatform
327
337
  def self.search(opts={}, &block)
328
338
  url ||= "#{MoxiworksPlatform::Config.url}/api/listings"
329
339
  required_opts = [:moxi_works_company_id, :updated_since]
340
+
330
341
  required_opts.each do |opt|
331
342
  raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
332
343
  opts[opt].nil? or opts[opt].to_s.empty?
333
344
  end
345
+
346
+ prev_page = opts[:previous_page] || opts['previous_page']
347
+ unless(prev_page.nil? or
348
+ prev_page.empty? or
349
+ not prev_page.is_a?(Hash) or
350
+ prev_page['listings'].nil? or
351
+ prev_page['listings'].empty? or
352
+ not prev_page['listings'].is_a?(Array))
353
+ opts[:last_moxi_works_listing_id] ||= prev_page['listings'].last.moxi_works_listing_id
354
+ end
355
+
334
356
  results = []
335
- json = {'listings': [], 'last_page': true}
357
+ json = {'listings' => [], 'last_page' => true}
336
358
  RestClient::Request.execute(method: :get,
337
359
  url: url,
338
360
  payload: opts, headers: self.headers) do |response|
@@ -356,23 +378,5 @@ module MoxiworksPlatform
356
378
  json
357
379
  end
358
380
 
359
- def self.underscore_attribute_names(hash)
360
- hash.keys.each do |key|
361
- hash[key] = self.underscore_attribute_names hash[key] if hash[key].is_a? Hash
362
- if hash[key].is_a? Array
363
- array = hash[key]
364
- new_array = []
365
- array.each do |member|
366
- new_array << self.underscore_attribute_names(member)
367
- end
368
- hash[key] = new_array
369
- end
370
- underscored = Resource.underscore(key)
371
- hash[underscored] = hash.delete(key)
372
- end
373
- hash
374
- end
375
-
376
-
377
381
  end
378
382
  end
@@ -149,6 +149,7 @@ module MoxiworksPlatform
149
149
  payload: opts, headers: self.headers) do |response|
150
150
  puts response if MoxiworksPlatform::Config.debug
151
151
  self.check_for_error_in_response(response)
152
+
152
153
  json = JSON.parse(response)
153
154
  json['offices'].each do |r|
154
155
  results << MoxiworksPlatform::Office.new(r) unless r.nil? or r.empty?
@@ -6,6 +6,8 @@ module MoxiworksPlatform
6
6
  # provides underlying logic for connecting to Moxi Works Platform over HTTPS
7
7
  class Resource
8
8
 
9
+ # class methods
10
+
9
11
  # keep a list of attr_accessors defined in this class
10
12
  #
11
13
  # used to convert Resource child object into parameters required for saving
@@ -31,7 +33,8 @@ module MoxiworksPlatform
31
33
  {
32
34
  Authorization: auth_header,
33
35
  Accept: accept_header,
34
- 'Content-Type' => content_type_header
36
+ 'Content-Type' => content_type_header,
37
+ Cookie: Session.instance.cookie
35
38
  }
36
39
  end
37
40
 
@@ -64,9 +67,10 @@ module MoxiworksPlatform
64
67
  def self.check_for_error_in_response(response)
65
68
  begin
66
69
  json = JSON.parse(response)
70
+ MoxiworksPlatform::Session.instance.cookie = response.headers[:set_cookie].first rescue nil
67
71
  return if json.is_a?(Array)
68
- rescue => e
69
- raise MoxiworksPlatform::Exception::RemoteRequestFailure, "unable to parse remote response #{e}\n response:\n #{response}"
72
+ # rescue => e
73
+ # raise MoxiworksPlatform::Exception::RemoteRequestFailure, "unable to parse remote response #{e}\n response:\n #{response}"
70
74
  end
71
75
  message = "unable to perform remote action on Moxi Works platform\n"
72
76
  message << json['messages'].join(',') unless json['messages'].nil?
@@ -75,44 +79,6 @@ module MoxiworksPlatform
75
79
  not json['status'].nil? and (%w(error fail).include?(json['status']))
76
80
  end
77
81
 
78
-
79
- # maps Hash values to Instance variables for mapping JSON object values to our Class attributes
80
- #
81
- def initialize(hash={})
82
- self.init_attrs_from_hash(hash)
83
- end
84
-
85
- def init_attrs_from_hash(hash={})
86
- hash.each do |key,val|
87
- instance_variable_set("@#{key}", val)
88
- end
89
- end
90
-
91
- def method_missing(meth, *args, &block)
92
- name = meth.to_sym
93
- if numeric_attrs.include? name
94
- return numeric_value_for(name, type: :integer) if int_attrs.include? name
95
- return numeric_value_for(name, type: :float) if float_attrs.include? name
96
- end
97
- super(meth, *args, &block)
98
- end
99
-
100
- # all available accessors defined in this class
101
- #
102
- # @return [Array][String] all defined accessors of this class
103
- def attributes
104
- self.class.attributes + numeric_attrs
105
- end
106
-
107
- # convert this class into a Hash structure where attributes are Hash key names and attribute values are Hash values
108
- #
109
- # @return [Hash] with keys mapped to class attribute names
110
- def to_hash
111
- hash = {}
112
- self.attributes.each {|attr| hash[attr.to_sym] = self.send(attr)}
113
- hash
114
- end
115
-
116
82
  def self.send_request(method, opts={}, url=nil)
117
83
  RestClient::Request.execute(method: method,
118
84
  url: url,
@@ -145,9 +111,62 @@ module MoxiworksPlatform
145
111
  nil
146
112
  end
147
113
 
114
+ def self.underscore_attribute_names(thing)
115
+ case thing
116
+ when Array
117
+ new_thing = self.underscore_array(thing)
118
+ when Hash
119
+ new_thing = self.underscore_hash(thing)
120
+ else
121
+ new_thing = thing
122
+ end
123
+ new_thing
124
+ end
125
+
126
+ def self.underscore_array(array)
127
+ new_array = []
128
+ array.each do |member|
129
+ new_array << self.underscore_attribute_names(member)
130
+ end
131
+ new_array
132
+ end
133
+
134
+ def self.underscore_hash(hash)
135
+ hash.keys.each do |key|
136
+ hash[key] = self.underscore_attribute_names hash[key]
137
+ underscored = Resource.underscore(key)
138
+ hash[underscored] = hash.delete(key)
139
+ end
140
+ hash
141
+ end
142
+
143
+ def self.underscore(attr)
144
+ attr.gsub(/::/, '/').
145
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
146
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
147
+ tr("-", "_").
148
+ downcase
149
+ end
150
+
151
+ # instance methods
152
+
153
+ # maps Hash values to Instance variables for mapping JSON object values to our Class attributes
154
+ #
155
+ def initialize(hash={})
156
+ self.init_attrs_from_hash(hash)
157
+ end
158
+
159
+ # all available accessors defined in this class
160
+ #
161
+ # @return [Array][String] all defined accessors of this class
162
+ def attributes
163
+ self.class.attributes + numeric_attrs
164
+ end
165
+
148
166
  # used by method_missing to ensure that a number is the type we expect it to be
149
- def numeric_attrs
150
- int_attrs + float_attrs
167
+ # this should be overridden if we have any float values we want to return as floats
168
+ def float_attrs
169
+ []
151
170
  end
152
171
 
153
172
  # used by method_missing to ensure that a number is the type we expect it to be
@@ -156,18 +175,33 @@ module MoxiworksPlatform
156
175
  []
157
176
  end
158
177
 
178
+ def init_attrs_from_hash(hash={})
179
+ hash.each do |key,val|
180
+ instance_variable_set("@#{key}", val)
181
+ end
182
+ end
183
+
184
+ def method_missing(meth, *args, &block)
185
+ name = meth.to_sym
186
+ if numeric_attrs.include? name
187
+ return numeric_value_for(name, type: :integer) if int_attrs.include? name
188
+ return numeric_value_for(name, type: :float) if float_attrs.include? name
189
+ end
190
+ super(meth, *args, &block)
191
+ end
192
+
159
193
  # used by method_missing to ensure that a number is the type we expect it to be
160
- # this should be overridden if we have any float values we want to return as floats
161
- def float_attrs
162
- []
194
+ def numeric_attrs
195
+ int_attrs + float_attrs
163
196
  end
164
197
 
165
- def self.underscore(attr)
166
- attr.gsub(/::/, '/').
167
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
168
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
169
- tr("-", "_").
170
- downcase
198
+ # convert this class into a Hash structure where attributes are Hash key names and attribute values are Hash values
199
+ #
200
+ # @return [Hash] with keys mapped to class attribute names
201
+ def to_hash
202
+ hash = {}
203
+ self.attributes.each {|attr| hash[attr.to_sym] = self.send(attr)}
204
+ hash
171
205
  end
172
206
 
173
207
  end
@@ -56,7 +56,7 @@ module MoxiworksPlatform
56
56
  #
57
57
  # This will be a single digit integer that can be [1,2,3,4,5].
58
58
  # For more information on SellerTransaction stages see
59
- # <a href='https://moxiworks-platform.github.io/#sellertransaction-stages'>The Moxi Works Platform Documentation</a>
59
+ # {https://moxiworks-platform.github.io/#sellertransaction-stages The Moxi Works Platform Documentation}
60
60
  #
61
61
  # @return [Integer] the stage the SellerTransaction is in.
62
62
  attr_accessor :stage
@@ -71,7 +71,7 @@ module MoxiworksPlatform
71
71
  # This will be an enumerated string that can be can be
72
72
  # 'initialized', 'configured' , 'active' , 'pending' or 'complete'
73
73
  # For more information on SellerTransaction stages see
74
- # <a href='https://moxiworks-platform.github.io/#sellertransaction-stages'>The Moxi Works Platform Documentation</a>
74
+ # {https://moxiworks-platform.github.io/#sellertransaction-stages The Moxi Works Platform Documentation}
75
75
  #
76
76
  #
77
77
  # @return [String, enumerated] current state of SellerTransaction
@@ -119,7 +119,7 @@ module MoxiworksPlatform
119
119
  # @return [Float] number of bathrooms in property being sold
120
120
  attr_accessor :baths
121
121
 
122
- # @!attribute is_mls_transaction
122
+ # @!attribute is_mls_transaction
123
123
  #
124
124
  #
125
125
  # @return [Boolean] Whether the property being sold is being listed on an MLS.
@@ -138,7 +138,7 @@ module MoxiworksPlatform
138
138
 
139
139
  # @!attribute start_timestamp
140
140
  #
141
- # **NON MLS TRANSACTIONS ONLY ** this is the Unix timestamp
141
+ # this is the Unix timestamp
142
142
  # representing the date the agent initiated transaction discussions
143
143
  # with the client.
144
144
  #
@@ -226,7 +226,7 @@ module MoxiworksPlatform
226
226
  #
227
227
  # In order to promote a SellerTransaction to the next stage, set the
228
228
  # promote_transaction attribute to true. For more information about
229
- # SellerTransaction stages, see <a href='https://moxiworks-platform.github.io/#promoting-sellertransaction-stage>The Moxi Works Platform Documentation</a>.
229
+ # SellerTransaction stages, see {https://moxiworks-platform.github.io/#promoting-sellertransaction-stageThe Moxi Works Platform Documentation}.
230
230
  # promote_transaction is only available for SellerTransaction updates.
231
231
  # Newly created SellerTransaction objects will automatically be created in
232
232
  # stage 3 (active)
@@ -241,13 +241,13 @@ module MoxiworksPlatform
241
241
  # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this transaction is to be associated
242
242
  # @option opts [String] :moxi_works_contact_id *REQUIRED* The unique identifier for the Contact on the Moxi Works Platform. Either moxi_works_contact_id or partner_contact_id is required when creating SellerTransaction objects
243
243
  # @option opts [String] :partner_contact_id *REQUIRED* Your system's unique id for associated contact. should already have been created in Moxi Works Platform. If the Contact was not created by your system, use the moxi_works_contact_id attribute. Either moxi_works_contact_id or partner_contact_id is required when creating SellerTransaction objects
244
+ # @option opts [String] :transaction_name *REQUIRED* short description of the transaction meaningful to the agent
244
245
  #
245
246
  # -- Either moxi_works_contact_id or partner_contact_id must be
246
247
  # populated; however, you should only populate one of these attributes.
247
248
  #
248
249
  # optional SellerTransaction parameters
249
250
  #
250
- # @option opts [String] :transaction_name short description of the transaction meaningful to the agent
251
251
  # @option opts [String] :notes human readable notes associated with the transaction meaningful to the agent
252
252
  # @option opts [String] :address street address of the property associated with the transaction
253
253
  # @option opts [String] :city city of the property associated with the transaction
@@ -256,9 +256,9 @@ module MoxiworksPlatform
256
256
  # @option opts [Integer] :sqft square feet of living area in the property being sold
257
257
  # @option opts [Integer] :beds number of bedrooms in the property being sold
258
258
  # @option opts [Integer or Float] :baths number of bathrooms in the property being sold
259
- # @option opts [Boolean] :is_mls_transaction Whether the property being sold is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS. If is_mls_transaction is false, then start_timestamp should be populated.
259
+ # @option opts [Boolean] :is_mls_transaction Whether the property being sold is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS.
260
260
  # @option opts [String] :mls_number mls number associated with the transaction -- mls_number should be populated only if is_mls_transaction is true.
261
- # @option opts [Integer] :start_timestamp Unix timestamp representing the date the property was put on sale -- start_timestamp should be populated only if is_mls_transaction is false.
261
+ # @option opts [Integer] :start_timestamp Unix timestamp representing the date the agent initiated transaction discussions with the client.
262
262
  # @option opts [Float] :commission_percentage what percentage the commission is if percentage based -- A SellerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
263
263
  # @option opts [Integer] :commission_flat_fee how much the commission is if flat fee -- A SellerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
264
264
  # @option opts [Integer] :target_price target price associated with the transaction if using a target price rather than price range
@@ -270,7 +270,7 @@ module MoxiworksPlatform
270
270
  # agent_identifier:'testis@testomatical.com',
271
271
  # moxi_works_contact_id:'deadbeef-dead-beef-bad4-feedfacebad',
272
272
  # notes: 'foo deeaz',
273
- # name: 'whateverz'
273
+ # transaction_name: 'whateverz'
274
274
  # address: '1234 there ave',
275
275
  # city: 'cityville'
276
276
  # state: 'provinceland',
@@ -398,9 +398,9 @@ module MoxiworksPlatform
398
398
  # @option opts [Integer] :sqft square feet of living area in the property being sold
399
399
  # @option opts [Integer] :beds number of bedrooms in the property being sold
400
400
  # @option opts [Integer or Float] :baths number of bathrooms in the property being sold
401
- # @option opts [Boolean] :is_mls_transaction Whether the property being sold is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS. If is_mls_transaction is false, then start_timestamp should be populated.
401
+ # @option opts [Boolean] :is_mls_transaction Whether the property being sold is being listed on an MLS. This should be false for paperwork-only, for sale by owner, off-market, or pocket listing type transactions or any transactions that will not be tracked through an MLS.
402
402
  # @option opts [String] :mls_number mls number associated with the transaction -- mls_number should be populated only if is_mls_transaction is true.
403
- # @option opts [Integer] :start_timestamp Unix timestamp representing the date the property was put on sale -- start_timestamp should be populated only if is_mls_transaction is false.
403
+ # @option opts [Integer] :start_timestamp Unix timestamp representing the date the agent initiated transaction discussions with the client.
404
404
  # @option opts [Float] :commission_percentage what percentage the commission is if percentage based -- A SellerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
405
405
  # @option opts [Integer] :commission_flat_fee how much the commission is if flat fee -- A SellerTransaction can only have either commission_percentage or commission_flat_fee populated. Both can not be populated.
406
406
  # @option opts [Integer] :target_price target price associated with the transaction if using a target price rather than price range
@@ -416,7 +416,7 @@ module MoxiworksPlatform
416
416
  # agent_identifier:'testis@testomatical.com',
417
417
  # moxi_works_transaction_id:'deadbeef-dead-beef-bad4-feedfacebad',
418
418
  # notes: 'foo deeaz',
419
- # name: 'whateverz'
419
+ # transaction_name: 'whateverz'
420
420
  # address: '1234 there ave',
421
421
  # city: 'cityville'
422
422
  # state: 'provinceland',
@@ -460,10 +460,10 @@ module MoxiworksPlatform
460
460
  # @option opts [String] :moxi_works_agent_id *REQUIRED* The Moxi Works Agent ID for the agent to which this transaction is to be associated
461
461
  # @option opts [String] :moxi_works_transaction_id *REQUIRED* The Moxi Works Platform unique ID for this transaction.
462
462
  # @option opts [String] :partner_contact_id *REQUIRED* Your system's unique ID for the Contact for whom this SellerTransaction is to be associated.
463
- # @option opts [String] :transaction_name *REQUIRED* short description of the transaction meaningful to the agent
464
463
  #
465
464
  # optional SellerTransaction parameters
466
465
  #
466
+ # @option opts [String] :transaction_name short description of the transaction meaningful to the agent
467
467
  # @option opts [String] :description longer description of the transaction
468
468
  # @option opts [Integer] :due_at Unix timestamp representing the due date
469
469
  # @option opts [Integer] :duration Length of time in minutes that the transaction should take
@@ -0,0 +1,9 @@
1
+ require 'singleton'
2
+ module MoxiworksPlatform
3
+ class Session
4
+ include Singleton
5
+
6
+ attr_accessor :cookie
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module MoxiworksPlatform
2
- VERSION = '0.10.1'
2
+ VERSION = '0.10.2'
3
3
  end
data/publish_docs.sh CHANGED
@@ -4,6 +4,8 @@ mv doc /tmp/doc/
4
4
 
5
5
  git checkout master
6
6
 
7
+ git commit -a -m "Documentation Update"
8
+
7
9
  yard doc
8
10
 
9
11
  git checkout gh-pages
@@ -21,6 +23,9 @@ git add MoxiworksPlatform
21
23
 
22
24
  git commit -a -m "Documentation Update"
23
25
 
26
+ git push origin gh-pages
27
+ git push upstream gh-pages
28
+
24
29
  git checkout master
25
30
 
26
31
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moxiworks_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tres Wong-Godfrey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-03 00:00:00.000000000 Z
11
+ date: 2017-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,6 +98,7 @@ files:
98
98
  - lib/moxiworks_platform/office.rb
99
99
  - lib/moxiworks_platform/resource.rb
100
100
  - lib/moxiworks_platform/seller_transaction.rb
101
+ - lib/moxiworks_platform/session.rb
101
102
  - lib/moxiworks_platform/task.rb
102
103
  - lib/moxiworks_platform/version.rb
103
104
  - moxiworks_platform.gemspec