tessitura_rest 0.7.4

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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +42 -0
  3. data/.gitignore +10 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +553 -0
  6. data/.travis.yml +5 -0
  7. data/CODE_OF_CONDUCT.md +49 -0
  8. data/Gemfile +10 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +89 -0
  11. data/Rakefile +14 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/lib/tessitura_rest.rb +52 -0
  15. data/lib/tessitura_rest/crm/accounts.rb +8 -0
  16. data/lib/tessitura_rest/crm/actions.rb +36 -0
  17. data/lib/tessitura_rest/crm/addresses.rb +122 -0
  18. data/lib/tessitura_rest/crm/attributes.rb +20 -0
  19. data/lib/tessitura_rest/crm/constituencies.rb +29 -0
  20. data/lib/tessitura_rest/crm/issues.rb +42 -0
  21. data/lib/tessitura_rest/crm/phones.rb +41 -0
  22. data/lib/tessitura_rest/crm/web_logins.rb +8 -0
  23. data/lib/tessitura_rest/custom/email.rb +30 -0
  24. data/lib/tessitura_rest/custom/local_procedure.rb +35 -0
  25. data/lib/tessitura_rest/diagnostics/diagnostics.rb +6 -0
  26. data/lib/tessitura_rest/finance/appeals.rb +7 -0
  27. data/lib/tessitura_rest/finance/gift_certificates.rb +7 -0
  28. data/lib/tessitura_rest/reference_data/billing_schedules.rb +6 -0
  29. data/lib/tessitura_rest/reference_data/countries.rb +7 -0
  30. data/lib/tessitura_rest/reference_data/sections.rb +7 -0
  31. data/lib/tessitura_rest/reference_data/states.rb +7 -0
  32. data/lib/tessitura_rest/security/security_user_groups.rb +8 -0
  33. data/lib/tessitura_rest/txn/orders.rb +23 -0
  34. data/lib/tessitura_rest/txn/package.rb +44 -0
  35. data/lib/tessitura_rest/txn/performance_extension.rb +44 -0
  36. data/lib/tessitura_rest/txn/performance_package_mode_of_sales.rb +8 -0
  37. data/lib/tessitura_rest/txn/price_types.rb +9 -0
  38. data/lib/tessitura_rest/txn/product_keywords.rb +9 -0
  39. data/lib/tessitura_rest/txn/production_extension.rb +14 -0
  40. data/lib/tessitura_rest/txn/production_season.rb +20 -0
  41. data/lib/tessitura_rest/txn/sub_line_items.rb +9 -0
  42. data/lib/tessitura_rest/txn/web_contents.rb +9 -0
  43. data/lib/tessitura_rest/version.rb +3 -0
  44. data/lib/tessitura_rest/web/cart.rb +293 -0
  45. data/lib/tessitura_rest/web/login.rb +55 -0
  46. data/lib/tessitura_rest/web/payment_plan_extension.rb +51 -0
  47. data/lib/tessitura_rest/web/session.rb +85 -0
  48. data/tessitura_rest.gemspec +29 -0
  49. 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,3 @@
1
+ class TessituraRest
2
+ VERSION = '0.7.4'
3
+ 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