tessitura_rest 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.codeclimate.yml +42 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.rubocop.yml +553 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +89 -0
- data/Rakefile +14 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/tessitura_rest.rb +52 -0
- data/lib/tessitura_rest/crm/accounts.rb +8 -0
- data/lib/tessitura_rest/crm/actions.rb +36 -0
- data/lib/tessitura_rest/crm/addresses.rb +122 -0
- data/lib/tessitura_rest/crm/attributes.rb +20 -0
- data/lib/tessitura_rest/crm/constituencies.rb +29 -0
- data/lib/tessitura_rest/crm/issues.rb +42 -0
- data/lib/tessitura_rest/crm/phones.rb +41 -0
- data/lib/tessitura_rest/crm/web_logins.rb +8 -0
- data/lib/tessitura_rest/custom/email.rb +30 -0
- data/lib/tessitura_rest/custom/local_procedure.rb +35 -0
- data/lib/tessitura_rest/diagnostics/diagnostics.rb +6 -0
- data/lib/tessitura_rest/finance/appeals.rb +7 -0
- data/lib/tessitura_rest/finance/gift_certificates.rb +7 -0
- data/lib/tessitura_rest/reference_data/billing_schedules.rb +6 -0
- data/lib/tessitura_rest/reference_data/countries.rb +7 -0
- data/lib/tessitura_rest/reference_data/sections.rb +7 -0
- data/lib/tessitura_rest/reference_data/states.rb +7 -0
- data/lib/tessitura_rest/security/security_user_groups.rb +8 -0
- data/lib/tessitura_rest/txn/orders.rb +23 -0
- data/lib/tessitura_rest/txn/package.rb +44 -0
- data/lib/tessitura_rest/txn/performance_extension.rb +44 -0
- data/lib/tessitura_rest/txn/performance_package_mode_of_sales.rb +8 -0
- data/lib/tessitura_rest/txn/price_types.rb +9 -0
- data/lib/tessitura_rest/txn/product_keywords.rb +9 -0
- data/lib/tessitura_rest/txn/production_extension.rb +14 -0
- data/lib/tessitura_rest/txn/production_season.rb +20 -0
- data/lib/tessitura_rest/txn/sub_line_items.rb +9 -0
- data/lib/tessitura_rest/txn/web_contents.rb +9 -0
- data/lib/tessitura_rest/version.rb +3 -0
- data/lib/tessitura_rest/web/cart.rb +293 -0
- data/lib/tessitura_rest/web/login.rb +55 -0
- data/lib/tessitura_rest/web/payment_plan_extension.rb +51 -0
- data/lib/tessitura_rest/web/session.rb +85 -0
- data/tessitura_rest.gemspec +29 -0
- metadata +189 -0
@@ -0,0 +1,9 @@
|
|
1
|
+
module SubLineItems
|
2
|
+
|
3
|
+
def get_return_tickets(constituent_id, status_id, performance_start_date, performance_end_date, order_id, options={})
|
4
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
5
|
+
response = self.class.get(base_api_endpoint("TXN/SubLineItems?constituentId=#{constituent_id}&orderId=#{order_id}&subLineItemStatusIds=#{status_id}&performanceStartDate=#{performance_start_date}&performanceEndDate=#{performance_end_date}"), options)
|
6
|
+
JSON.parse(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module WebContents
|
2
|
+
|
3
|
+
def get_web_contents(production_ids=nil, package_ids=nil, content_type_ids=nil, options={})
|
4
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
5
|
+
response = self.class.get(base_api_endpoint("TXN/WebContents?productionElementIds=#{production_ids}&packageIds=#{package_ids}&contentTypeIds=#{content_type_ids}"), options)
|
6
|
+
JSON.parse(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
@@ -0,0 +1,293 @@
|
|
1
|
+
module Cart
|
2
|
+
|
3
|
+
def get_cart(session_key, options={})
|
4
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
5
|
+
self.class.get(base_api_endpoint("Web/Cart/#{session_key}"), options)
|
6
|
+
end
|
7
|
+
|
8
|
+
def empty_cart(session_key, options={})
|
9
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
10
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}"), options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def web_cart_text(session_key, options={})
|
14
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
15
|
+
self.class.get(base_api_endpoint("Web/Cart/#{session_key}/Messages?messageTypes=#{ENV['WEB_CART_TEXT']}&savedCart=false"), options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def order_confirm_text(session_key, options={})
|
19
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
20
|
+
self.class.get(base_api_endpoint("Web/Cart/#{session_key}?messageTypes=#{ENV['ORDER_CONFIRM_TEXT']}&savedCart=true"), options)
|
21
|
+
end
|
22
|
+
|
23
|
+
def change_mode_of_sale(session_key, code, options={})
|
24
|
+
parameters =
|
25
|
+
{
|
26
|
+
'ModeOfSaleId': code
|
27
|
+
}
|
28
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
29
|
+
options.merge!(:body => parameters)
|
30
|
+
self.class.put(base_api_endpoint("Web/Cart/#{session_key}/Properties"), options)
|
31
|
+
end
|
32
|
+
|
33
|
+
def add_gift_certificate(session_key, amount, name, notes, gift_certificate_type, options={})
|
34
|
+
parameters =
|
35
|
+
{
|
36
|
+
'Amount': amount,
|
37
|
+
'PaymentMethodId': gift_certificate_type,
|
38
|
+
'Notes': notes,
|
39
|
+
'Name': name
|
40
|
+
}
|
41
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
42
|
+
options.merge!(:body => parameters)
|
43
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/GiftCertificates"), options)
|
44
|
+
end
|
45
|
+
|
46
|
+
def remove_gift_certificate(session_key, gift_certificate_number, options={})
|
47
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
48
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/GiftCertificates/#{gift_certificate_number}"), options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def apply_gift_certificate(session_key, gift_certificate_number, amount, options={})
|
52
|
+
parameters =
|
53
|
+
{
|
54
|
+
'Amount': amount,
|
55
|
+
'GiftCertificateNumber': gift_certificate_number
|
56
|
+
}
|
57
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
58
|
+
options.merge!(:body => parameters)
|
59
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Payments/GiftCertificate"), options)
|
60
|
+
end
|
61
|
+
|
62
|
+
def un_apply_gift_certificate(session_key, gift_certificate_number, options={})
|
63
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
64
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Payments/GiftCertificate/#{gift_certificate_number}"), options)
|
65
|
+
end
|
66
|
+
|
67
|
+
def add_contribution(session_key, amount, fund, membership_level, renew=nil, upgrade=nil, options={})
|
68
|
+
parameters =
|
69
|
+
{
|
70
|
+
'Amount': amount,
|
71
|
+
'FundId': fund,
|
72
|
+
'Upgrade': upgrade,
|
73
|
+
'Renew': renew,
|
74
|
+
'MembershipLevelId': membership_level
|
75
|
+
}
|
76
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
77
|
+
options.merge!(:body => parameters)
|
78
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Contributions"), options)
|
79
|
+
end
|
80
|
+
|
81
|
+
def remove_contribution(session_key, line_item_id, options={})
|
82
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
83
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Contributions/#{line_item_id}"), options)
|
84
|
+
end
|
85
|
+
|
86
|
+
def add_on_account(session_key, amount, payment_method_id, options={})
|
87
|
+
parameters =
|
88
|
+
{
|
89
|
+
'Amount': amount,
|
90
|
+
"PaymentMethodId": payment_method_id
|
91
|
+
}
|
92
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
93
|
+
options.merge!(:body => parameters)
|
94
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/OnAccount"), options)
|
95
|
+
end
|
96
|
+
|
97
|
+
def remove_on_account(session_key, payment_id, options={})
|
98
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
99
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/OnAccount/#{payment_id}"), options)
|
100
|
+
end
|
101
|
+
|
102
|
+
def get_properties(session_key, options={})
|
103
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
104
|
+
self.class.get(base_api_endpoint("Web/Cart/#{session_key}/Properties"), options)
|
105
|
+
end
|
106
|
+
|
107
|
+
def update_properties(session_key, category=0, solicitor='webapi', channel=0, options={})
|
108
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
109
|
+
parameters =
|
110
|
+
{
|
111
|
+
"Solicitor": solicitor,
|
112
|
+
"ChannelId": channel
|
113
|
+
}
|
114
|
+
parameters["CategoryId"] = category if category != 0
|
115
|
+
options.merge!(:body => parameters)
|
116
|
+
self.class.put(base_api_endpoint("Web/Cart/#{session_key}/Properties"), options)
|
117
|
+
end
|
118
|
+
|
119
|
+
def update_source(session_key, source_no, solicitor='webapi', options={})
|
120
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
121
|
+
parameters =
|
122
|
+
{
|
123
|
+
"Solicitor": solicitor,
|
124
|
+
"SourceId": source_no
|
125
|
+
}
|
126
|
+
options.merge!(:body => parameters)
|
127
|
+
self.class.put(base_api_endpoint("Web/Cart/#{session_key}/Properties"), options)
|
128
|
+
end
|
129
|
+
|
130
|
+
def add_order_comment(session_key, notes, solicitor='webapi', options={})
|
131
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
132
|
+
parameters =
|
133
|
+
{
|
134
|
+
"Solicitor": solicitor,
|
135
|
+
"Notes": notes
|
136
|
+
}
|
137
|
+
options.merge!(:body => parameters)
|
138
|
+
self.class.put(base_api_endpoint("Web/Cart/#{session_key}/Properties"), options)
|
139
|
+
end
|
140
|
+
|
141
|
+
def reserve_tickets(session_key, number_of_seats, perf_id, price_type, zone_id, unseated, requested_seats=nil, special_requests=nil, options={})
|
142
|
+
parameters =
|
143
|
+
{
|
144
|
+
"PriceType": price_type,
|
145
|
+
"PerformanceId": perf_id,
|
146
|
+
"NumberOfSeats": number_of_seats,
|
147
|
+
"ZoneId": zone_id,
|
148
|
+
"SpecialRequests": special_requests,
|
149
|
+
"Unseated": unseated,
|
150
|
+
"RequestedSeats": requested_seats
|
151
|
+
}
|
152
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
153
|
+
options.merge!(:body => parameters)
|
154
|
+
self.class.post(base_api_endpoint("/Web/Cart/#{session_key}/Tickets"), options)
|
155
|
+
end
|
156
|
+
|
157
|
+
def return_tickets(session_key, return_or_donate, id, options={})
|
158
|
+
parameters =
|
159
|
+
{
|
160
|
+
"TicketNumber": id,
|
161
|
+
"ReturnOrDonate": return_or_donate
|
162
|
+
}
|
163
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
164
|
+
options.merge!(:body => parameters)
|
165
|
+
self.class.post(base_api_endpoint("/Web/Cart/#{session_key}/Tickets/Return"), options)
|
166
|
+
end
|
167
|
+
|
168
|
+
def add_package_item(session_key, price_type, package_id, number_of_seats, zone_id, leave_single_seats, parent_package_line_item_id, unseated, requested_seats=nil, options={})
|
169
|
+
parameters =
|
170
|
+
{
|
171
|
+
"PriceType": price_type,
|
172
|
+
"PackageId": package_id,
|
173
|
+
"NumberOfSeats": number_of_seats,
|
174
|
+
"ZoneId": zone_id,
|
175
|
+
"RequestedSeats": requested_seats,
|
176
|
+
"LeaveSingleSeats": leave_single_seats,
|
177
|
+
"ParentPackageLineItemId": parent_package_line_item_id,
|
178
|
+
"Unseated": unseated
|
179
|
+
}
|
180
|
+
|
181
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
182
|
+
options.merge!(:body => parameters)
|
183
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Packages/Fixed"), options)
|
184
|
+
end
|
185
|
+
|
186
|
+
def remove_package_item(session_key, package_id, line_item_id, options={})
|
187
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
188
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Packages/Fixed/#{package_id}/#{line_item_id}"), options)
|
189
|
+
end
|
190
|
+
|
191
|
+
def add_nfs_package_item(session_key, nfs_package_line_item_id, performance_id, performance_group_id, price_type, package_id, number_of_seats, zone_id, leave_single_seats, unseated, options={})
|
192
|
+
parameters =
|
193
|
+
{
|
194
|
+
"NFSPackageLineItemId": nfs_package_line_item_id,
|
195
|
+
"PriceType": price_type,
|
196
|
+
"PackageId": package_id,
|
197
|
+
"PerformanceId": performance_id,
|
198
|
+
"PerformanceGroupId": performance_group_id,
|
199
|
+
"NumberOfSeats": number_of_seats,
|
200
|
+
"ZoneId": zone_id,
|
201
|
+
"LeaveSingleSeats": leave_single_seats,
|
202
|
+
"Unseated": unseated
|
203
|
+
}
|
204
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
205
|
+
options.merge!(:body => parameters)
|
206
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Packages/Nfs"), options)
|
207
|
+
end
|
208
|
+
|
209
|
+
def remove_nfs_package_item(session_key, line_item_id, options={})
|
210
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
211
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Packages/Nfs/#{line_item_id}"), options)
|
212
|
+
end
|
213
|
+
|
214
|
+
def add_sub_package_item(session_key, price_type, sub_package_id, number_of_seats, zone_id, leave_single_seats, parent_super_line_item_id, super_line_item_id, unseated, requested_seats=nil, options={})
|
215
|
+
parameters =
|
216
|
+
{
|
217
|
+
"ParentSuperPackageLineItemId": parent_super_line_item_id,
|
218
|
+
"SuperPackageLineItemId": super_line_item_id,
|
219
|
+
"PriceType": price_type,
|
220
|
+
"SubPackageId": sub_package_id,
|
221
|
+
"NumberOfSeats": number_of_seats,
|
222
|
+
"ZoneId": zone_id,
|
223
|
+
"RequestedSeats": requested_seats,
|
224
|
+
"LeaveSingleSeats": leave_single_seats,
|
225
|
+
"Unseated": unseated
|
226
|
+
}
|
227
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
228
|
+
options.merge!(:body => parameters)
|
229
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Packages/Super"), options)
|
230
|
+
end
|
231
|
+
|
232
|
+
def remove_sub_package_item(session_key, super_package_id, super_package_line_item_id, options={})
|
233
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
234
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Packages/Super/#{super_package_id}/#{super_package_line_item_id}"), options)
|
235
|
+
end
|
236
|
+
|
237
|
+
def print_ticket_elements(session_key, order_id, ticket_design, reprint, mode, new_ticket_no=false, options={})
|
238
|
+
parameters =
|
239
|
+
{
|
240
|
+
"NewTicketNoForReprints": new_ticket_no,
|
241
|
+
"ReprintTickets": reprint,
|
242
|
+
"OrderId": order_id,
|
243
|
+
"TicketDesignId": ticket_design,
|
244
|
+
"Mode": mode
|
245
|
+
}
|
246
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
247
|
+
options.merge!(:body => parameters)
|
248
|
+
self.class.post(base_api_endpoint("/Web/Cart/#{session_key}/Print/TicketElements"), options)
|
249
|
+
end
|
250
|
+
|
251
|
+
def remove_tickets(session_key, performance_id, line_item_id, options={})
|
252
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
253
|
+
self.class.delete(base_api_endpoint("/Web/Cart/#{session_key}/Tickets/#{performance_id}/#{line_item_id}"), options)
|
254
|
+
end
|
255
|
+
|
256
|
+
def add_or_update_fee(session_key, action, fee_id, item_fee_id=nil, amount=nil, options={})
|
257
|
+
parameters =
|
258
|
+
{
|
259
|
+
"Action": action,
|
260
|
+
"ItemFeeId": item_fee_id,
|
261
|
+
"FeeId": fee_id,
|
262
|
+
"Amount": amount
|
263
|
+
}
|
264
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
265
|
+
options.merge!(:body => parameters)
|
266
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Fees"), options)
|
267
|
+
end
|
268
|
+
|
269
|
+
def validate_cart(session_key, super_package=false, fixed=false, flex=false, plan=false, options={})
|
270
|
+
parameters =
|
271
|
+
{
|
272
|
+
"ValidateSuperPackages": super_package,
|
273
|
+
"ValidateFSPackages": fixed,
|
274
|
+
"ValidateNFSPackages": flex,
|
275
|
+
"ValidatePaymentPlan": plan
|
276
|
+
}
|
277
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
278
|
+
options.merge!(:body => parameters)
|
279
|
+
self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Validate"), options)
|
280
|
+
end
|
281
|
+
|
282
|
+
def update_cart_properties_custom_data(session_key, index, value, options={})
|
283
|
+
parameters =
|
284
|
+
{
|
285
|
+
"Index": index,
|
286
|
+
"Value": value
|
287
|
+
}
|
288
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
289
|
+
options.merge!(:body => parameters)
|
290
|
+
put = self.class.put(base_api_endpoint("Web/Cart/#{session_key}/CustomData/#{index}"), options)
|
291
|
+
put.success?
|
292
|
+
end
|
293
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Login
|
2
|
+
|
3
|
+
def with_user(ip_address, business_unit_id, options={})
|
4
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
5
|
+
response = self.class.get(base_api_endpoint('Web/Session/'), options)
|
6
|
+
JSON.parse(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
def login_using_email(email, password, login_type_id, promotion, session_key, options={})
|
10
|
+
parameters =
|
11
|
+
{
|
12
|
+
'UserName': email,
|
13
|
+
'Password': password,
|
14
|
+
'LoginTypeId': login_type_id,
|
15
|
+
'PromotionCode': promotion
|
16
|
+
}
|
17
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
18
|
+
options.merge!(:body => parameters)
|
19
|
+
post = self.class.post(base_api_endpoint("Web/Session/#{session_key}/Login"), options)
|
20
|
+
post['IsLoggedIn']
|
21
|
+
end
|
22
|
+
|
23
|
+
def login_using_external(email, login_type_id, promotion, session_key, options={})
|
24
|
+
parameters =
|
25
|
+
{
|
26
|
+
'UserName': email,
|
27
|
+
'LoginTypeId': login_type_id,
|
28
|
+
'PromotionCode': promotion
|
29
|
+
}
|
30
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
31
|
+
options.merge!(:body => parameters.to_json, :headers => {'Content-Type' => 'application/json'})
|
32
|
+
post = self.class.post(base_api_endpoint("Web/Session/#{session_key}/Login/External"), options)
|
33
|
+
post.success?
|
34
|
+
end
|
35
|
+
|
36
|
+
def login_with_token(email, login_type_id, token, promotion, session_key, options={})
|
37
|
+
parameters =
|
38
|
+
{
|
39
|
+
'EmailAddress': email,
|
40
|
+
'ForgotLoginToken': token,
|
41
|
+
'LoginTypeId': login_type_id,
|
42
|
+
'PromotionCode': promotion
|
43
|
+
}
|
44
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
45
|
+
options.merge!(:body => parameters.to_json, :headers => {'Content-Type' => 'application/json'})
|
46
|
+
post = self.class.post(base_api_endpoint("Web/Session/#{session_key}/Login/Token"), options)
|
47
|
+
post['IsLoggedIn']
|
48
|
+
end
|
49
|
+
|
50
|
+
def logout(session_key, options={})
|
51
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
52
|
+
options.merge!(:body => {}, :headers => {'Content-Type' => 'application/json'})
|
53
|
+
self.class.post(base_api_endpoint("/Web/Session/#{session_key}/Logout"), options)
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module PaymentPlanExtension
|
2
|
+
|
3
|
+
def add_billing_payment_plan(session_key, billing_id, billing_type_id, name, number, month, year, start_date=nil, end_date=nil, options={})
|
4
|
+
parameters =
|
5
|
+
{
|
6
|
+
'BillingScheduleId': billing_id,
|
7
|
+
'BillingTypeId': billing_type_id,
|
8
|
+
'StartDate': start_date,
|
9
|
+
'EndDate': end_date,
|
10
|
+
"Card": {
|
11
|
+
"Name": name,
|
12
|
+
"Number": number,
|
13
|
+
"ExpiryMonth": month,
|
14
|
+
"ExpiryYear": year
|
15
|
+
}
|
16
|
+
}
|
17
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
18
|
+
options.merge!(:body => parameters)
|
19
|
+
response = self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Payments/Plan/Schedule"), options)
|
20
|
+
JSON.parse(response.body)
|
21
|
+
end
|
22
|
+
|
23
|
+
def preview_billing_payment_plan(session_key, billing_id, start_date=nil, end_date=nil, options={})
|
24
|
+
parameters =
|
25
|
+
{
|
26
|
+
'BillingScheduleId': billing_id,
|
27
|
+
'StartDate': start_date,
|
28
|
+
'EndDate': end_date
|
29
|
+
}
|
30
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
31
|
+
options.merge!(:body => parameters)
|
32
|
+
response = self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Payments/Plan/Schedule/Preview"), options)
|
33
|
+
JSON.parse(response.body)
|
34
|
+
end
|
35
|
+
|
36
|
+
def validate_payment_plan(session_key, options={})
|
37
|
+
parameters =
|
38
|
+
{
|
39
|
+
'ValidatePaymentPlan': true
|
40
|
+
}
|
41
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
42
|
+
options.merge!(:body => parameters)
|
43
|
+
response = self.class.post(base_api_endpoint("Web/Cart/#{session_key}/Validate"), options)
|
44
|
+
JSON.parse(response.body)
|
45
|
+
end
|
46
|
+
|
47
|
+
def remove_payment_plan(session_key, options={})
|
48
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
49
|
+
self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Payments/Plan"), options)
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Session
|
2
|
+
|
3
|
+
def get_session(key, options={})
|
4
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
5
|
+
response = self.class.get(base_api_endpoint("Web/Session/#{key}"), options)
|
6
|
+
JSON.parse(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_session(ip, options={})
|
10
|
+
parameters =
|
11
|
+
{
|
12
|
+
'IpAddress': ip,
|
13
|
+
'Organization': 'Tessitura Web'
|
14
|
+
}
|
15
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
16
|
+
options.merge!(body: parameters)
|
17
|
+
response = self.class.post(base_api_endpoint('Web/Session'), options)
|
18
|
+
JSON.parse(response.body)
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_expiration(key, options={})
|
22
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
23
|
+
response = self.class.get(base_api_endpoint("Web/Session/#{key}/Expiration"), options)
|
24
|
+
JSON.parse(response.body)
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_variables(key, options={})
|
28
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
29
|
+
response = self.class.get(base_api_endpoint("Web/Session/#{key}/Variables"), options)
|
30
|
+
JSON.parse(response.body)
|
31
|
+
end
|
32
|
+
|
33
|
+
def set_expiration(key, timeoffset, expiration, options={})
|
34
|
+
parameters =
|
35
|
+
{
|
36
|
+
'Expiration': expiration,
|
37
|
+
'TimeOffset': timeoffset
|
38
|
+
}
|
39
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
40
|
+
options.merge!(:body => parameters)
|
41
|
+
response = self.class.put(base_api_endpoint("Web/Session/#{key}/Expiration"), options)
|
42
|
+
JSON.parse(response.body)
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_existing_order(key, order_id, options={})
|
46
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
47
|
+
self.class.post(base_api_endpoint("Web/Session/#{key}/LoadOrder/#{order_id}"), options)
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_promotion(key, code, code_string, options={})
|
51
|
+
parameters =
|
52
|
+
{
|
53
|
+
'PromoCode': code,
|
54
|
+
'PromoCodeString': code_string
|
55
|
+
}
|
56
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
57
|
+
options.merge!(:body => parameters)
|
58
|
+
response = self.class.post(base_api_endpoint("Web/Session/#{key}/PromoCode"), options)
|
59
|
+
JSON.parse(response.body)
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_renewals(key, season_id, renewal, mode_of_sale, options={})
|
63
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
64
|
+
response = self.class.get(base_api_endpoint("Web/Session/#{key}/Orders/Search?seasonId=#{season_id}&renewalsOnly=#{renewal}&modeOfSaleId=#{mode_of_sale}"), options)
|
65
|
+
JSON.parse(response.body)
|
66
|
+
end
|
67
|
+
|
68
|
+
def send_credentials(key, email, login_type, template_id, options={})
|
69
|
+
parameters =
|
70
|
+
{
|
71
|
+
'TemplateFormatId': template_id,
|
72
|
+
'LoginTypeId': login_type,
|
73
|
+
'EmailAddress': email
|
74
|
+
}
|
75
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
76
|
+
options.merge!(:body => parameters)
|
77
|
+
self.class.post(base_api_endpoint("/Web/Session/#{key}/Login/SendCredentials"), options)
|
78
|
+
end
|
79
|
+
|
80
|
+
def get_shipping_methods(key, options={})
|
81
|
+
options.merge!(basic_auth: @auth, headers: @headers)
|
82
|
+
response = self.class.get(base_api_endpoint("Web/Session/#{key}/DeliveryMethods"), options)
|
83
|
+
JSON.parse(response.body)
|
84
|
+
end
|
85
|
+
end
|