amsi 1.0.1 → 1.1.0
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/.ci +7 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +340 -0
- data/CHANGELOG.txt +1 -0
- data/Gemfile +8 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/lib/amsi/attribute_parser/base.rb +3 -2
- data/lib/amsi/attribute_parser/boolean.rb +1 -0
- data/lib/amsi/attribute_parser/date.rb +2 -1
- data/lib/amsi/attribute_parser/date_time.rb +7 -1
- data/lib/amsi/attribute_parser.rb +5 -3
- data/lib/amsi/document_parser/base.rb +4 -3
- data/lib/amsi/document_parser/get_moveins.rb +2 -0
- data/lib/amsi/document_parser/leases.rb +3 -1
- data/lib/amsi/document_parser/properties.rb +4 -0
- data/lib/amsi/model/address.rb +10 -10
- data/lib/amsi/model/base/attribute.rb +1 -3
- data/lib/amsi/model/base.rb +3 -2
- data/lib/amsi/model/guest_card.rb +1 -1
- data/lib/amsi/model/guest_card_result.rb +6 -6
- data/lib/amsi/model/lease.rb +31 -33
- data/lib/amsi/model/leasing_agent.rb +8 -8
- data/lib/amsi/model/manager.rb +8 -8
- data/lib/amsi/model/marketing_source.rb +8 -8
- data/lib/amsi/model/occupant.rb +21 -21
- data/lib/amsi/model/property.rb +19 -19
- data/lib/amsi/model/unit_type.rb +27 -27
- data/lib/amsi/parameter/prospect.rb +2 -3
- data/lib/amsi/request/add_guest_card.rb +1 -4
- data/lib/amsi/request/get_property_residents.rb +1 -1
- data/lib/amsi/request_section/add_guest_card.rb +6 -7
- data/lib/amsi/request_section/property_list_filter.rb +5 -5
- data/lib/amsi/utils/snowflake_event_tracker.rb +18 -27
- data/lib/amsi/validator/base.rb +2 -2
- data/lib/amsi/validator/prospect_event_validator.rb +2 -5
- data/lib/amsi/validator/request_errors.rb +2 -1
- data/lib/amsi/validator/request_fault.rb +4 -0
- data/lib/amsi/validator/resident_event_validator.rb +2 -5
- data/lib/amsi/version.rb +1 -1
- data/lib/amsi.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11c1b8708790808255b03c2cb90034877388a8e0d8f789ff94f0c253c9130018
|
4
|
+
data.tar.gz: 38372c491deb97fef4c8c651560e6438d452d053a8c0ab7165376f2c9a3cec5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e83a6e13092883cf1a4c37bcf9829c31f045b439f1194135e273a164de025f984ee38719c9effee44607020ebcdc0e8524f66ef4ea652626322c03dd6171f6f
|
7
|
+
data.tar.gz: 63bf360eb40a413acfe1518df5cbcb76b5ef4c1c529e6f46f8f5a2e03c6216c432e5c268238001c5bac616e8d18f2214815d25a20c39a72d39e75a82cf63b3a0
|
data/.ci
CHANGED
@@ -109,6 +109,13 @@ spec:
|
|
109
109
|
} //container
|
110
110
|
} //steps
|
111
111
|
} //stage
|
112
|
+
stage('Rubocop') {
|
113
|
+
steps {
|
114
|
+
container('ruby') {
|
115
|
+
sh label: 'rubocop', script: 'bundle exec rubocop -P -c .rubocop.yml'
|
116
|
+
} //container
|
117
|
+
} //steps
|
118
|
+
} //stage
|
112
119
|
} //parallel
|
113
120
|
} //stage
|
114
121
|
} // stages
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,340 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config --exclude-limit 100`
|
3
|
+
# on 2022-01-18 21:04:48 UTC using RuboCop version 1.25.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 2
|
10
|
+
# Configuration parameters: AllowedMethods.
|
11
|
+
# AllowedMethods: enums
|
12
|
+
Lint/ConstantDefinitionInBlock:
|
13
|
+
Exclude:
|
14
|
+
- 'spec/amsi/utils/request_generator_spec.rb'
|
15
|
+
|
16
|
+
# Offense count: 2
|
17
|
+
# Configuration parameters: AllowComments, AllowEmptyLambdas.
|
18
|
+
Lint/EmptyBlock:
|
19
|
+
Exclude:
|
20
|
+
- 'spec/amsi/utils/snowflake_event_tracker_spec.rb'
|
21
|
+
|
22
|
+
# Offense count: 2
|
23
|
+
Lint/MissingSuper:
|
24
|
+
Exclude:
|
25
|
+
- 'lib/amsi/validator/prospect_event_validator.rb'
|
26
|
+
- 'lib/amsi/validator/resident_event_validator.rb'
|
27
|
+
|
28
|
+
# Offense count: 1
|
29
|
+
# Cop supports --auto-correct.
|
30
|
+
Lint/NonDeterministicRequireOrder:
|
31
|
+
Exclude:
|
32
|
+
- 'spec/spec_helper.rb'
|
33
|
+
|
34
|
+
# Offense count: 3
|
35
|
+
Lint/UselessAssignment:
|
36
|
+
Exclude:
|
37
|
+
- 'lib/amsi/document_parser/base.rb'
|
38
|
+
- 'spec/amsi/document_parser/leases_spec.rb'
|
39
|
+
|
40
|
+
# Offense count: 2
|
41
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
42
|
+
# IgnoredMethods: refine
|
43
|
+
Metrics/BlockLength:
|
44
|
+
Max: 62
|
45
|
+
|
46
|
+
# Offense count: 5
|
47
|
+
# Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
|
48
|
+
Metrics/ParameterLists:
|
49
|
+
Max: 14
|
50
|
+
|
51
|
+
# Offense count: 1
|
52
|
+
# Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
|
53
|
+
# NamePrefix: is_, has_, have_
|
54
|
+
# ForbiddenPrefixes: is_, has_, have_
|
55
|
+
# AllowedMethods: is_a?
|
56
|
+
# MethodDefinitionMacros: define_method, define_singleton_method
|
57
|
+
Naming/PredicateName:
|
58
|
+
Exclude:
|
59
|
+
- 'lib/amsi/validator/base.rb'
|
60
|
+
|
61
|
+
# Offense count: 13
|
62
|
+
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
|
63
|
+
# SupportedStyles: snake_case, normalcase, non_integer
|
64
|
+
# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
|
65
|
+
Naming/VariableNumber:
|
66
|
+
Exclude:
|
67
|
+
- 'lib/amsi/model/address.rb'
|
68
|
+
- 'lib/amsi/model/occupant.rb'
|
69
|
+
- 'lib/amsi/model/property.rb'
|
70
|
+
- 'spec/amsi/model/property_spec.rb'
|
71
|
+
|
72
|
+
# Offense count: 5
|
73
|
+
# Configuration parameters: Prefixes.
|
74
|
+
# Prefixes: when, with, without
|
75
|
+
RSpec/ContextWording:
|
76
|
+
Exclude:
|
77
|
+
- 'spec/amsi/document_parser/leases_spec.rb'
|
78
|
+
- 'spec/amsi/document_parser/properties_spec.rb'
|
79
|
+
- 'spec/amsi/request_section/property_list_filter_spec.rb'
|
80
|
+
|
81
|
+
# Offense count: 74
|
82
|
+
# Cop supports --auto-correct.
|
83
|
+
# Configuration parameters: SkipBlocks, EnforcedStyle.
|
84
|
+
# SupportedStyles: described_class, explicit
|
85
|
+
RSpec/DescribedClass:
|
86
|
+
Exclude:
|
87
|
+
- 'spec/amsi/attribute_parser/boolean_spec.rb'
|
88
|
+
- 'spec/amsi/attribute_parser/date_spec.rb'
|
89
|
+
- 'spec/amsi/attribute_parser/date_time_spec.rb'
|
90
|
+
- 'spec/amsi/attribute_parser/decimal_spec.rb'
|
91
|
+
- 'spec/amsi/attribute_parser/integer_spec.rb'
|
92
|
+
- 'spec/amsi/attribute_parser/string_spec.rb'
|
93
|
+
- 'spec/amsi/attribute_parser_spec.rb'
|
94
|
+
- 'spec/amsi/model/guest_card_result_spec.rb'
|
95
|
+
- 'spec/amsi/model/guest_card_spec.rb'
|
96
|
+
- 'spec/amsi/model/lease_spec.rb'
|
97
|
+
- 'spec/amsi/model/leasing_agent_spec.rb'
|
98
|
+
- 'spec/amsi/model/marketing_source_spec.rb'
|
99
|
+
- 'spec/amsi/model/occupant_spec.rb'
|
100
|
+
- 'spec/amsi/model/property_spec.rb'
|
101
|
+
- 'spec/amsi/model/unit_type_spec.rb'
|
102
|
+
- 'spec/amsi/request_section/add_guest_card_spec.rb'
|
103
|
+
- 'spec/amsi/request_section/auth_spec.rb'
|
104
|
+
- 'spec/amsi/request_section/moveins_filter_spec.rb'
|
105
|
+
- 'spec/amsi/request_section/property_list_filter_spec.rb'
|
106
|
+
- 'spec/amsi/request_section/property_resident_filter_spec.rb'
|
107
|
+
- 'spec/amsi/utils/request_fetcher_spec.rb'
|
108
|
+
- 'spec/amsi/utils/request_generator_spec.rb'
|
109
|
+
- 'spec/amsi/utils/snowflake_event_tracker_spec.rb'
|
110
|
+
- 'spec/amsi/validator/request_errors_spec.rb'
|
111
|
+
- 'spec/amsi/validator/request_fault_spec.rb'
|
112
|
+
- 'spec/integration/add_guest_card_spec.rb'
|
113
|
+
- 'spec/integration/get_moveins_by_first_marketing_source_spec.rb'
|
114
|
+
- 'spec/integration/get_property_list_spec.rb'
|
115
|
+
- 'spec/integration/get_property_residents_spec.rb'
|
116
|
+
|
117
|
+
# Offense count: 4
|
118
|
+
# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
119
|
+
# Include: **/*_spec*rb*, **/spec/**/*
|
120
|
+
RSpec/FilePath:
|
121
|
+
Exclude:
|
122
|
+
- 'spec/integration/add_guest_card_spec.rb'
|
123
|
+
- 'spec/integration/get_moveins_by_first_marketing_source_spec.rb'
|
124
|
+
- 'spec/integration/get_property_list_spec.rb'
|
125
|
+
- 'spec/integration/get_property_residents_spec.rb'
|
126
|
+
|
127
|
+
# Offense count: 10
|
128
|
+
RSpec/IteratedExpectation:
|
129
|
+
Exclude:
|
130
|
+
- 'spec/amsi/document_parser/get_moveins_spec.rb'
|
131
|
+
- 'spec/amsi/document_parser/leases_spec.rb'
|
132
|
+
- 'spec/amsi/document_parser/properties_spec.rb'
|
133
|
+
- 'spec/integration/get_moveins_by_first_marketing_source_spec.rb'
|
134
|
+
- 'spec/integration/get_property_residents_spec.rb'
|
135
|
+
|
136
|
+
# Offense count: 2
|
137
|
+
RSpec/LeakyConstantDeclaration:
|
138
|
+
Exclude:
|
139
|
+
- 'spec/amsi/utils/request_generator_spec.rb'
|
140
|
+
|
141
|
+
# Offense count: 1
|
142
|
+
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
|
143
|
+
RSpec/VerifiedDoubles:
|
144
|
+
Exclude:
|
145
|
+
- 'spec/amsi/attribute_parser_spec.rb'
|
146
|
+
|
147
|
+
# Offense count: 2
|
148
|
+
# Configuration parameters: EnforcedStyle, AllowToTime.
|
149
|
+
# SupportedStyles: strict, flexible
|
150
|
+
Rails/Date:
|
151
|
+
Exclude:
|
152
|
+
- 'lib/amsi/request_section/add_guest_card.rb'
|
153
|
+
|
154
|
+
# Offense count: 1
|
155
|
+
# Cop supports --auto-correct.
|
156
|
+
Style/CaseLikeIf:
|
157
|
+
Exclude:
|
158
|
+
- 'lib/amsi/validator/base.rb'
|
159
|
+
|
160
|
+
# Offense count: 48
|
161
|
+
# Configuration parameters: AllowedConstants.
|
162
|
+
Style/Documentation:
|
163
|
+
Exclude:
|
164
|
+
- 'lib/amsi.rb'
|
165
|
+
- 'lib/amsi/model/guest_card.rb'
|
166
|
+
- 'lib/amsi/model/guest_card_result.rb'
|
167
|
+
- 'lib/amsi/model/lease.rb'
|
168
|
+
- 'lib/amsi/model/leasing_agent.rb'
|
169
|
+
- 'lib/amsi/model/marketing_source.rb'
|
170
|
+
- 'lib/amsi/model/occupant.rb'
|
171
|
+
- 'lib/amsi/model/property.rb'
|
172
|
+
- 'lib/amsi/model/unit_type.rb'
|
173
|
+
- 'lib/amsi/parameter/prospect.rb'
|
174
|
+
- 'lib/amsi/utils/snowflake_event_tracker.rb'
|
175
|
+
- 'lib/amsi/validator/base.rb'
|
176
|
+
- 'lib/amsi/validator/prospect_event_validator.rb'
|
177
|
+
- 'lib/amsi/validator/request_errors.rb'
|
178
|
+
- 'lib/amsi/validator/resident_event_validator.rb'
|
179
|
+
- 'spec/amsi/attribute_parser/boolean_spec.rb'
|
180
|
+
- 'spec/amsi/attribute_parser/date_spec.rb'
|
181
|
+
- 'spec/amsi/attribute_parser/date_time_spec.rb'
|
182
|
+
- 'spec/amsi/attribute_parser/decimal_spec.rb'
|
183
|
+
- 'spec/amsi/attribute_parser/integer_spec.rb'
|
184
|
+
- 'spec/amsi/attribute_parser/string_spec.rb'
|
185
|
+
- 'spec/amsi/attribute_parser_spec.rb'
|
186
|
+
- 'spec/amsi/document_parser/get_moveins_spec.rb'
|
187
|
+
- 'spec/amsi/document_parser/leases_spec.rb'
|
188
|
+
- 'spec/amsi/document_parser/properties_spec.rb'
|
189
|
+
- 'spec/amsi/model/address_spec.rb'
|
190
|
+
- 'spec/amsi/model/guest_card_result_spec.rb'
|
191
|
+
- 'spec/amsi/model/guest_card_spec.rb'
|
192
|
+
- 'spec/amsi/model/lease_spec.rb'
|
193
|
+
- 'spec/amsi/model/leasing_agent_spec.rb'
|
194
|
+
- 'spec/amsi/model/manager_spec.rb'
|
195
|
+
- 'spec/amsi/model/marketing_source_spec.rb'
|
196
|
+
- 'spec/amsi/model/occupant_spec.rb'
|
197
|
+
- 'spec/amsi/model/property_spec.rb'
|
198
|
+
- 'spec/amsi/model/unit_type_spec.rb'
|
199
|
+
- 'spec/amsi/request_section/add_guest_card_spec.rb'
|
200
|
+
- 'spec/amsi/request_section/auth_spec.rb'
|
201
|
+
- 'spec/amsi/request_section/moveins_filter_spec.rb'
|
202
|
+
- 'spec/amsi/request_section/property_list_filter_spec.rb'
|
203
|
+
- 'spec/amsi/request_section/property_resident_filter_spec.rb'
|
204
|
+
- 'spec/amsi/utils/request_fetcher_spec.rb'
|
205
|
+
- 'spec/amsi/utils/request_generator_spec.rb'
|
206
|
+
- 'spec/amsi/utils/snowflake_event_tracker_spec.rb'
|
207
|
+
- 'spec/amsi/validator/request_errors_spec.rb'
|
208
|
+
- 'spec/amsi/validator/request_fault_spec.rb'
|
209
|
+
- 'spec/support/helpers/date_time_helper.rb'
|
210
|
+
|
211
|
+
# Offense count: 97
|
212
|
+
# Cop supports --auto-correct.
|
213
|
+
# Configuration parameters: EnforcedStyle.
|
214
|
+
# SupportedStyles: always, always_true, never
|
215
|
+
Style/FrozenStringLiteralComment:
|
216
|
+
Exclude:
|
217
|
+
- 'Gemfile'
|
218
|
+
- 'Rakefile'
|
219
|
+
- 'bin/console'
|
220
|
+
- 'config/multi_xml.rb'
|
221
|
+
- 'lib/amsi.rb'
|
222
|
+
- 'lib/amsi/attribute_parser.rb'
|
223
|
+
- 'lib/amsi/attribute_parser/base.rb'
|
224
|
+
- 'lib/amsi/attribute_parser/boolean.rb'
|
225
|
+
- 'lib/amsi/attribute_parser/date.rb'
|
226
|
+
- 'lib/amsi/attribute_parser/date_time.rb'
|
227
|
+
- 'lib/amsi/attribute_parser/decimal.rb'
|
228
|
+
- 'lib/amsi/attribute_parser/integer.rb'
|
229
|
+
- 'lib/amsi/attribute_parser/string.rb'
|
230
|
+
- 'lib/amsi/document_parser/base.rb'
|
231
|
+
- 'lib/amsi/document_parser/get_moveins.rb'
|
232
|
+
- 'lib/amsi/document_parser/guest_card_result.rb'
|
233
|
+
- 'lib/amsi/document_parser/leases.rb'
|
234
|
+
- 'lib/amsi/document_parser/properties.rb'
|
235
|
+
- 'lib/amsi/error/bad_request.rb'
|
236
|
+
- 'lib/amsi/error/base.rb'
|
237
|
+
- 'lib/amsi/error/invalid_response.rb'
|
238
|
+
- 'lib/amsi/error/request_fault.rb'
|
239
|
+
- 'lib/amsi/error/request_timeout.rb'
|
240
|
+
- 'lib/amsi/error/unparsable_response.rb'
|
241
|
+
- 'lib/amsi/model/address.rb'
|
242
|
+
- 'lib/amsi/model/base.rb'
|
243
|
+
- 'lib/amsi/model/base/attribute.rb'
|
244
|
+
- 'lib/amsi/model/base/attribute_store.rb'
|
245
|
+
- 'lib/amsi/model/guest_card.rb'
|
246
|
+
- 'lib/amsi/model/guest_card_result.rb'
|
247
|
+
- 'lib/amsi/model/lease.rb'
|
248
|
+
- 'lib/amsi/model/leasing_agent.rb'
|
249
|
+
- 'lib/amsi/model/manager.rb'
|
250
|
+
- 'lib/amsi/model/marketing_source.rb'
|
251
|
+
- 'lib/amsi/model/occupant.rb'
|
252
|
+
- 'lib/amsi/model/property.rb'
|
253
|
+
- 'lib/amsi/model/unit_type.rb'
|
254
|
+
- 'lib/amsi/parameter/contact_type.rb'
|
255
|
+
- 'lib/amsi/parameter/prospect.rb'
|
256
|
+
- 'lib/amsi/request/add_guest_card.rb'
|
257
|
+
- 'lib/amsi/request/base.rb'
|
258
|
+
- 'lib/amsi/request/get_moveins_by_first_marketing_source.rb'
|
259
|
+
- 'lib/amsi/request/get_property_list.rb'
|
260
|
+
- 'lib/amsi/request/get_property_residents.rb'
|
261
|
+
- 'lib/amsi/request_section/add_guest_card.rb'
|
262
|
+
- 'lib/amsi/request_section/auth.rb'
|
263
|
+
- 'lib/amsi/request_section/moveins_filter.rb'
|
264
|
+
- 'lib/amsi/request_section/property_list_filter.rb'
|
265
|
+
- 'lib/amsi/request_section/property_resident_filter.rb'
|
266
|
+
- 'lib/amsi/utils/request_fetcher.rb'
|
267
|
+
- 'lib/amsi/utils/request_generator.rb'
|
268
|
+
- 'lib/amsi/utils/snowflake_event_tracker.rb'
|
269
|
+
- 'lib/amsi/validator.rb'
|
270
|
+
- 'lib/amsi/validator/base.rb'
|
271
|
+
- 'lib/amsi/validator/prospect_event_validator.rb'
|
272
|
+
- 'lib/amsi/validator/request_errors.rb'
|
273
|
+
- 'lib/amsi/validator/request_fault.rb'
|
274
|
+
- 'lib/amsi/validator/resident_event_validator.rb'
|
275
|
+
- 'lib/amsi/version.rb'
|
276
|
+
- 'spec/amsi/attribute_parser/boolean_spec.rb'
|
277
|
+
- 'spec/amsi/attribute_parser/date_spec.rb'
|
278
|
+
- 'spec/amsi/attribute_parser/date_time_spec.rb'
|
279
|
+
- 'spec/amsi/attribute_parser/decimal_spec.rb'
|
280
|
+
- 'spec/amsi/attribute_parser/integer_spec.rb'
|
281
|
+
- 'spec/amsi/attribute_parser/string_spec.rb'
|
282
|
+
- 'spec/amsi/attribute_parser_spec.rb'
|
283
|
+
- 'spec/amsi/document_parser/get_moveins_spec.rb'
|
284
|
+
- 'spec/amsi/document_parser/leases_spec.rb'
|
285
|
+
- 'spec/amsi/document_parser/properties_spec.rb'
|
286
|
+
- 'spec/amsi/model/address_spec.rb'
|
287
|
+
- 'spec/amsi/model/guest_card_result_spec.rb'
|
288
|
+
- 'spec/amsi/model/guest_card_spec.rb'
|
289
|
+
- 'spec/amsi/model/lease_spec.rb'
|
290
|
+
- 'spec/amsi/model/leasing_agent_spec.rb'
|
291
|
+
- 'spec/amsi/model/manager_spec.rb'
|
292
|
+
- 'spec/amsi/model/marketing_source_spec.rb'
|
293
|
+
- 'spec/amsi/model/occupant_spec.rb'
|
294
|
+
- 'spec/amsi/model/property_spec.rb'
|
295
|
+
- 'spec/amsi/model/unit_type_spec.rb'
|
296
|
+
- 'spec/amsi/request_section/add_guest_card_spec.rb'
|
297
|
+
- 'spec/amsi/request_section/auth_spec.rb'
|
298
|
+
- 'spec/amsi/request_section/moveins_filter_spec.rb'
|
299
|
+
- 'spec/amsi/request_section/property_list_filter_spec.rb'
|
300
|
+
- 'spec/amsi/request_section/property_resident_filter_spec.rb'
|
301
|
+
- 'spec/amsi/utils/request_fetcher_spec.rb'
|
302
|
+
- 'spec/amsi/utils/request_generator_spec.rb'
|
303
|
+
- 'spec/amsi/utils/snowflake_event_tracker_spec.rb'
|
304
|
+
- 'spec/amsi/validator/request_errors_spec.rb'
|
305
|
+
- 'spec/amsi/validator/request_fault_spec.rb'
|
306
|
+
- 'spec/amsi_spec.rb'
|
307
|
+
- 'spec/integration/add_guest_card_spec.rb'
|
308
|
+
- 'spec/integration/get_moveins_by_first_marketing_source_spec.rb'
|
309
|
+
- 'spec/integration/get_property_list_spec.rb'
|
310
|
+
- 'spec/integration/get_property_residents_spec.rb'
|
311
|
+
- 'spec/spec_helper.rb'
|
312
|
+
- 'spec/support/helpers/date_time_helper.rb'
|
313
|
+
- 'spec/support/shared_examples/model.rb'
|
314
|
+
|
315
|
+
# Offense count: 4
|
316
|
+
# Cop supports --auto-correct.
|
317
|
+
# Configuration parameters: EnforcedStyle.
|
318
|
+
# SupportedStyles: literals, strict
|
319
|
+
Style/MutableConstant:
|
320
|
+
Exclude:
|
321
|
+
- 'lib/amsi/request_section/add_guest_card.rb'
|
322
|
+
- 'lib/amsi/utils/snowflake_event_tracker.rb'
|
323
|
+
- 'lib/amsi/version.rb'
|
324
|
+
|
325
|
+
# Offense count: 3
|
326
|
+
# Cop supports --auto-correct.
|
327
|
+
# Configuration parameters: AllowMethodsWithArguments, IgnoredMethods.
|
328
|
+
# IgnoredMethods: respond_to, define_method
|
329
|
+
Style/SymbolProc:
|
330
|
+
Exclude:
|
331
|
+
- 'lib/amsi/attribute_parser/date_time.rb'
|
332
|
+
- 'spec/amsi/model/lease_spec.rb'
|
333
|
+
- 'spec/integration/get_property_residents_spec.rb'
|
334
|
+
|
335
|
+
# Offense count: 7
|
336
|
+
# Cop supports --auto-correct.
|
337
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
338
|
+
# URISchemes: http, https
|
339
|
+
Layout/LineLength:
|
340
|
+
Max: 2096
|
data/CHANGELOG.txt
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
* 1.1.0 Update GetPropertyResidents request to allow timezone as one of the extra config parameters to return datetimes in the given timezone
|
1
2
|
* 1.0.1 Set the service on snowflake events
|
2
3
|
* 1.0.0 Add eventing gem and track import_pms_resident and import_pms_prospect events for each occupant on GetPropertyResidents
|
3
4
|
* 0.12.0 Add lead_source_code, lead_date and lead_id to Model::Lease
|
data/Gemfile
CHANGED
@@ -3,4 +3,11 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in amsi.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
gem 'event_tracker', git: 'https://github.com/apartmentlist/eventing.git', glob: 'clients/ruby/event_tracker.gemspec',
|
6
|
+
gem 'event_tracker', git: 'https://github.com/apartmentlist/eventing.git', glob: 'clients/ruby/event_tracker.gemspec',
|
7
|
+
tag: 'rb1.35.0'
|
8
|
+
|
9
|
+
gem 'rubocop', '~> 1.25', group: :development
|
10
|
+
|
11
|
+
gem 'rubocop-rspec', '~> 2.7', group: :development
|
12
|
+
|
13
|
+
gem 'rubocop-rails', '~> 2.13', group: :development
|
data/README.md
CHANGED
@@ -115,7 +115,7 @@ Required initializer parameters:
|
|
115
115
|
* `portfolio_name` [String] the unique identifier for the property in Amsi
|
116
116
|
* `property_id` [String] Amsi property id
|
117
117
|
* `web_service_url` [String] Amsi Url to the leasing.asmx resource
|
118
|
-
* `params` [Hash] extra configuration fields: `:start_date` [String], `:end_date` [String], `:remote_id` [String], `:billing_config` [BillingConfiguration], `:import_id` [String]
|
118
|
+
* `params` [Hash] extra configuration fields: `:start_date` [String], `:end_date` [String], `:remote_id` [String], `:billing_config` [BillingConfiguration], `:import_id` [String], `:pmc_id` [String], `:app_name` [String], `:timezone` [String]
|
119
119
|
|
120
120
|
Optional initializer parameters and default values:
|
121
121
|
* `lease_status` [String] Lease status filter; defaults to current leases ("C"). Valid values: (A)pplicant, (C)urrent, (I)ntent to Transfer, (L)eased, (N)otice, (P)revious, (T)ransfer, (V)approved, (X)cancelled
|
data/Rakefile
CHANGED
@@ -5,8 +5,9 @@ module Amsi
|
|
5
5
|
# Base class for attribute parsers.
|
6
6
|
class Base
|
7
7
|
# @param value [String] the response value from AMSI
|
8
|
-
def initialize(value)
|
8
|
+
def initialize(value, timezone = nil)
|
9
9
|
@value = value
|
10
|
+
@timezone = timezone
|
10
11
|
end
|
11
12
|
|
12
13
|
# @return [Object] the parsed attribute value
|
@@ -17,7 +18,7 @@ module Amsi
|
|
17
18
|
|
18
19
|
private
|
19
20
|
|
20
|
-
attr_reader :value
|
21
|
+
attr_reader :value, :timezone
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
@@ -13,8 +13,14 @@ module Amsi
|
|
13
13
|
# @return [Date] the parsed attribute value
|
14
14
|
def parse
|
15
15
|
return if value == ''
|
16
|
+
|
16
17
|
date_time = ::DateTime.parse(value)
|
17
|
-
|
18
|
+
if timezone.nil?
|
19
|
+
TIME_ZONE.local_to_utc(date_time, &:last)
|
20
|
+
else
|
21
|
+
time_zone = TZInfo::Timezone.get(timezone)
|
22
|
+
time_zone.local_to_utc(date_time, &:last)
|
23
|
+
end
|
18
24
|
rescue ArgumentError
|
19
25
|
raise Error::InvalidResponse,
|
20
26
|
"Invalid date/time response value: #{value}"
|
@@ -10,21 +10,23 @@ module Amsi
|
|
10
10
|
class AttributeParser
|
11
11
|
# @param value [String] the response value from AMSI
|
12
12
|
# @param type [Symbol] the attribute's configured data type
|
13
|
-
def initialize(value:, type:)
|
13
|
+
def initialize(value:, type:, timezone: nil)
|
14
14
|
@value = value
|
15
15
|
@type = type
|
16
|
+
@timezone = timezone
|
16
17
|
end
|
17
18
|
|
18
19
|
# @return [Object] the parsed attribute value
|
19
20
|
def parse
|
20
21
|
return unless value
|
22
|
+
|
21
23
|
case type
|
22
24
|
when :boolean
|
23
25
|
AttributeParser::Boolean.new(value).parse
|
24
26
|
when :date
|
25
27
|
AttributeParser::Date.new(value).parse
|
26
28
|
when :date_time
|
27
|
-
AttributeParser::DateTime.new(value).parse
|
29
|
+
AttributeParser::DateTime.new(value, timezone).parse
|
28
30
|
when :decimal
|
29
31
|
AttributeParser::Decimal.new(value).parse
|
30
32
|
when :integer
|
@@ -38,7 +40,7 @@ module Amsi
|
|
38
40
|
|
39
41
|
private
|
40
42
|
|
41
|
-
attr_reader :value, :type
|
43
|
+
attr_reader :value, :type, :timezone
|
42
44
|
end
|
43
45
|
|
44
46
|
private_constant :AttributeParser
|
@@ -19,7 +19,7 @@ module Amsi
|
|
19
19
|
begin
|
20
20
|
parsed_response = MultiXml.parse(xml)
|
21
21
|
rescue MultiXml::ParseError => e
|
22
|
-
raise Amsi::Error::UnparsableResponse
|
22
|
+
raise Amsi::Error::UnparsableResponse, xml
|
23
23
|
end
|
24
24
|
|
25
25
|
validate_response!(parsed_response)
|
@@ -39,13 +39,14 @@ module Amsi
|
|
39
39
|
# into a Hash
|
40
40
|
# @return [Object] the parsed object(s) from the response
|
41
41
|
# @raise [Amsi::Error::Base] if the response is invalid
|
42
|
-
def parse_body(
|
42
|
+
def parse_body(_body)
|
43
43
|
raise NotImplementedError,
|
44
44
|
"#{self.class.name} must implement #{__method__}"
|
45
45
|
end
|
46
46
|
|
47
47
|
def validator_classes
|
48
|
-
[Validator::RequestErrors, Validator::RequestFault, Validator::ResidentEventValidator,
|
48
|
+
[Validator::RequestErrors, Validator::RequestFault, Validator::ResidentEventValidator,
|
49
|
+
Validator::ProspectEventValidator]
|
49
50
|
end
|
50
51
|
end
|
51
52
|
end
|
@@ -31,6 +31,7 @@ module Amsi
|
|
31
31
|
leases = parsed_result['Leases']['Lease']
|
32
32
|
|
33
33
|
return [] if leases.nil?
|
34
|
+
|
34
35
|
leases.is_a?(Array) ? leases : [leases]
|
35
36
|
end
|
36
37
|
|
@@ -44,6 +45,7 @@ module Amsi
|
|
44
45
|
occupants = lease_hash['Occupant']
|
45
46
|
|
46
47
|
return [] if occupants.nil?
|
48
|
+
|
47
49
|
occupants.is_a?(Array) ? occupants : [occupants]
|
48
50
|
end
|
49
51
|
|
@@ -15,7 +15,7 @@ module Amsi
|
|
15
15
|
# @raise [Amsi::Error::Base] if the response is invalid
|
16
16
|
def parse_body(body)
|
17
17
|
lease_hashes(body).map do |lease_hash|
|
18
|
-
lease = Model::Lease.new(lease_hash)
|
18
|
+
lease = Model::Lease.new(lease_hash, @params[:timezone])
|
19
19
|
lease.occupants = occupant_hashes(lease_hash).map do |occupant_hash|
|
20
20
|
Model::Occupant.new(occupant_hash)
|
21
21
|
end
|
@@ -32,6 +32,7 @@ module Amsi
|
|
32
32
|
leases = parsed_result['PropertyResidents']['Lease']
|
33
33
|
|
34
34
|
return [] if leases.nil?
|
35
|
+
|
35
36
|
leases.is_a?(Array) ? leases : [leases]
|
36
37
|
end
|
37
38
|
|
@@ -39,6 +40,7 @@ module Amsi
|
|
39
40
|
occupants = lease_hash['Occupant']
|
40
41
|
|
41
42
|
return [] if occupants.nil?
|
43
|
+
|
42
44
|
occupants.is_a?(Array) ? occupants : [occupants]
|
43
45
|
end
|
44
46
|
end
|
@@ -65,6 +65,7 @@ module Amsi
|
|
65
65
|
def leasing_agents(property_hash)
|
66
66
|
agent_hashes = property_hash['LeasingAgent']
|
67
67
|
return [] if agent_hashes.nil?
|
68
|
+
|
68
69
|
agent_hashes = [agent_hashes] unless agent_hashes.is_a?(Array)
|
69
70
|
agent_hashes.map do |agent_hash|
|
70
71
|
Model::LeasingAgent.new(agent_hash)
|
@@ -74,6 +75,7 @@ module Amsi
|
|
74
75
|
def marketing_sources(property_hash)
|
75
76
|
source_hashes = property_hash['MarketingSource']
|
76
77
|
return [] if source_hashes.nil?
|
78
|
+
|
77
79
|
source_hashes = [source_hashes] unless source_hashes.is_a?(Array)
|
78
80
|
source_hashes.map do |source_hash|
|
79
81
|
Model::MarketingSource.new(source_hash)
|
@@ -83,6 +85,7 @@ module Amsi
|
|
83
85
|
def unit_types(property_hash)
|
84
86
|
type_hashes = property_hash['UnitType']
|
85
87
|
return [] if type_hashes.nil?
|
88
|
+
|
86
89
|
type_hashes = [type_hashes] unless type_hashes.is_a?(Array)
|
87
90
|
type_hashes.map do |type_hash|
|
88
91
|
Model::UnitType.new(type_hash)
|
@@ -96,6 +99,7 @@ module Amsi
|
|
96
99
|
properties = parsed_result['Properties']['Property']
|
97
100
|
|
98
101
|
return [] if properties.nil?
|
102
|
+
|
99
103
|
properties.is_a?(Array) ? properties : [properties]
|
100
104
|
end
|
101
105
|
end
|
data/lib/amsi/model/address.rb
CHANGED
@@ -3,16 +3,16 @@ require_relative 'base'
|
|
3
3
|
module Amsi
|
4
4
|
module Model
|
5
5
|
class Address < Base
|
6
|
-
string_attrs
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
6
|
+
string_attrs(*%i[
|
7
|
+
line_1
|
8
|
+
line_2
|
9
|
+
line_3
|
10
|
+
line_4
|
11
|
+
city
|
12
|
+
state
|
13
|
+
zip_code
|
14
|
+
country
|
15
|
+
])
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -52,9 +52,7 @@ module Amsi
|
|
52
52
|
prefixed_name.gsub(/id$/, 'ID')]
|
53
53
|
names.concat(big_id_names)
|
54
54
|
end
|
55
|
-
if type == :boolean
|
56
|
-
names.concat(["#{squished_name}flag", "#{squished_name}bit"])
|
57
|
-
end
|
55
|
+
names.concat(["#{squished_name}flag", "#{squished_name}bit"]) if type == :boolean
|
58
56
|
names
|
59
57
|
end
|
60
58
|
end
|