tessitura_rest 1.5.1 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b0e73929476e5b0fb98733fb24cd87c99f80cf7e72b8f9836bcfbd43b5a3b93
4
- data.tar.gz: 1ddde42fd7152c9b5465dce0c60da4c5b53d91d7cf864f3e23ca6aea53fd4173
3
+ metadata.gz: a49c3c7d83fe4cfce291698fda608082f5a8c4e39e876d1278e4b8d02a45bed4
4
+ data.tar.gz: 9bfd9a6d7f23b2b4578ab64e19c20e0161a2bc364e94b8b72ee3da2456dd50b6
5
5
  SHA512:
6
- metadata.gz: 7c57afbab08d149f2527c85ec8430787b943c38712e114a13df712e380b3da9c5327be15b7b0bff267695292e4488e8d706db782349d4197942f33fb6f8316dc
7
- data.tar.gz: '05059ea32d3bbb55da3ec671332922a9f3d2472c95a045cae1890a96772ebe560c13e7787e5cafcce35ed7dc9cea6b65e24f928d2ce7c9219d9d18a2c78d6922'
6
+ metadata.gz: 3c56d94fcb870ebd98daf7207cabad3c9376b1d88d389614bc6a15dfe3c6d9794e7401d7194e343c92f7fa1b16938d57fe4063551de425e54dbe56ff96b9a75b
7
+ data.tar.gz: 255d826bff2d4b3b76a3d563abd6d9c4f8a60f2bccf44196206bfea60330ac0f83c8f8d4bd2e00c261f451de90bc7dcaf327c2e540134f638aeda9525b433a70
data/.gitignore CHANGED
@@ -8,4 +8,5 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .env
11
+ .env_enc
11
12
  .idea/
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/7e9be54ce754061ff52a/test_coverage)](https://codeclimate.com/repos/5a8308622f7e3e028700068f/test_coverage)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/7e9be54ce754061ff52a/maintainability)](https://codeclimate.com/repos/5a8308622f7e3e028700068f/maintainability)
3
+
1
4
  # TessituraRest
2
5
 
3
6
  A Ruby gem wrapper for the [TessituraRest Network's Rest API](https://www.tessituranetwork.com/) (version 14 and up).
@@ -11,77 +14,102 @@ gem 'tessitura_rest'
11
14
  ```
12
15
 
13
16
  And then execute:
17
+
14
18
  ```
15
19
  $ bundle
16
20
  ```
21
+
17
22
  Or install it yourself as:
23
+
18
24
  ```
19
25
  $ gem install tessitura_rest
20
26
  ```
27
+
21
28
  ## Usage
22
29
 
23
30
  Create a .env file in the root of your directory. The following fields are required:
24
31
 
25
- * TESSITURA_URL # the url to your Production TessituraRest REST instance
26
- * TESSITURA_USERNAME # the username to authenticate to your TessituraRest REST instance
27
- * TESSITURA_PASSWORD # the password to authenticate to your TessituraRest REST instance
32
+ * TESSITURA_v16_URL # the url to your Production TessituraRest REST instance
33
+ * TESSITURA_USERNAME # the username to authenticate to your TessituraRest REST instance
34
+ * TESSITURA_PASSWORD # the password to authenticate to your TessituraRest REST instance
28
35
 
29
36
  To run the gem locally, use:
37
+
30
38
  ```
31
39
  $ rake console
32
40
  ```
41
+
33
42
  To connect to the TessituraRest Rest API, use:
43
+
34
44
  ```
35
45
  TessituraRest.new
36
46
  ```
37
- followed by the method and arguments you would like to use.
47
+
48
+ followed by the method and arguments you would like to use.
38
49
 
39
50
  ## Running the Test Suite
40
51
 
41
52
  1. You will need to add valid environment variables to the gem to run the test suite.
42
- 2. Delete all of the pre-recorded cassettes tapes from spec/vcr_cassettes so they can be re-recorded with your instance's settings.
53
+ 2. Delete all of the pre-recorded cassettes tapes from spec/vcr_cassettes so they can be re-recorded with your
54
+ instance's settings.
43
55
  3. Create a .env file and set these values:
44
56
 
45
- * TESSITURA_URL # the url to your Test/Staging TessituraRest REST instance
46
- * USERNAME # the username to authenticate to your TessituraRest REST instance
47
- * PASSWORD # the password to authenticate to your TessituraRest REST instance
48
- * WEB_CART_TEXT # the ID to the pricing rule you have setup for Cart
49
- * SESSION_KEY # an existing session key in your TessituraRest instance
50
- * EMAIL # an email tied to an existing web login in your TessituraRest instance
51
- * CONSTITUENT_ID # an active constituent in your TessituraRest instance
52
- * ATTRIBUTE_ID # an active Attribute in your TessituraRest instance
53
- * SCALPER_ID # any active constituent in your TessituraRest instance
54
- * CSI_ID # the id of an open customer service inquiry in your TessituraRest instance
55
- * PATRON_ID # the patron ID of a user whom submits CSIs
56
- * ACTION_ID # the id of an action made against a customer service inquiry in your TessituraRest instance
57
- * ACTION_TYPE # a valid action type that can be attributed to an action on a customer service inquiry
58
- * PROMO_CODE # a valid integer tied to an active promotion code
59
- * PROMO_CODE_STRING # a valid string tied to an active promotion code
60
- * FUND # an active fund to apply money to
61
- * FUND2 # another active fund to apply money to
62
- * MEMBER # an active membership level
63
- * PAYMENT_ID # active payment auth ID
64
- * GIFT_CARD_NO # a valid gift certificate number that has been purchased
65
- * APPLIED_GC # a valid gift certificate number that can be used to purchase products
66
- * RETURN_TICKET_KEY # a logged in session that contains a exchangeable ticket
67
- * TEMPLATE_ID # a valid email template ID to send Forgot Password emails
68
- * PROFILE_ID # a valid email template profile ID
57
+ * TESSITURA_URL # the url to your Test/Staging TessituraRest REST instance
58
+ * USERNAME # the username to authenticate to your TessituraRest REST instance
59
+ * PASSWORD # the password to authenticate to your TessituraRest REST instance
60
+ * WEB_CART_TEXT # the ID to the pricing rule you have setup for Cart
61
+ * SESSION_KEY # an existing session key in your TessituraRest instance
62
+ * EMAIL # an email tied to an existing web login in your TessituraRest instance
63
+ * CONSTITUENT_ID # an active constituent in your TessituraRest instance
64
+ * ATTRIBUTE_ID # an active Attribute in your TessituraRest instance
65
+ * SCALPER_ID # any active constituent in your TessituraRest instance
66
+ * CSI_ID # the id of an open customer service inquiry in your TessituraRest instance
67
+ * PATRON_ID # the patron ID of a user whom submits CSIs
68
+ * ACTION_ID # the id of an action made against a customer service inquiry in your TessituraRest instance
69
+ * ACTION_TYPE # a valid action type that can be attributed to an action on a customer service inquiry
70
+ * PROMO_CODE # a valid integer tied to an active promotion code
71
+ * PROMO_CODE_STRING # a valid string tied to an active promotion code
72
+ * FUND # an active fund to apply money to
73
+ * FUND2 # another active fund to apply money to
74
+ * MEMBER # an active membership level
75
+ * PAYMENT_ID # active payment auth ID
76
+ * GIFT_CARD_NO # a valid gift certificate number that has been purchased
77
+ * APPLIED_GC # a valid gift certificate number that can be used to purchase products
78
+ * RETURN_TICKET_KEY # a logged in session that contains a exchangeable ticket
79
+ * TEMPLATE_ID # a valid email template ID to send Forgot Password emails
80
+ * PROFILE_ID # a valid email template profile ID
69
81
 
70
82
  To run the tests:
83
+
71
84
  ```
72
85
  $ rake spec
73
86
  ```
74
- WARNING: I advise you NOT to run the test suite against your Production TessituraRest API since it will make database alterations.
87
+
88
+ WARNING: I advise you NOT to run the test suite against your Production TessituraRest API since it will make database
89
+ alterations.
90
+
91
+ ## Updating CircleCI's Environment Variables
92
+
93
+ 1. Go to the CircleCI dashboard for the tessitura gem.
94
+ 2. Click on the gear icon in the upper right corner.
95
+ 3. Click on the tessitura gem project.
96
+ 4. Click on Environment Variables.
97
+ 5. Encode your .env with ```base64 -i .env -o .env_enc``` and add the encoded string to the ENV_ENC variable.
75
98
 
76
99
  ## Development
77
100
 
78
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
101
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can
102
+ also run `bin/console` for an interactive prompt that will allow you to experiment.
79
103
 
80
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
104
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the
105
+ version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version,
106
+ push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
81
107
 
82
108
  ## Contributing
83
109
 
84
- Bug reports and pull requests are welcome on GitHub at https://github.com/pgharts/tessitura. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
110
+ Bug reports and pull requests are welcome on GitHub at https://github.com/pgharts/tessitura. This project is intended to
111
+ be a safe, welcoming space for collaboration, and contributors are expected to adhere to
112
+ the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
85
113
 
86
114
  ## License
87
115
 
@@ -22,7 +22,6 @@ module Addresses
22
22
  'Id': constituent,
23
23
  },
24
24
  'Inactive': false,
25
- 'Label': true,
26
25
  'Months': 'YYYYYYYYYYYY',
27
26
  'PostalCode': postal_code,
28
27
  'PrimaryIndicator': primary,
@@ -58,7 +57,6 @@ module Addresses
58
57
  'Id': current['Constituent']['Id'],
59
58
  },
60
59
  'Inactive': false,
61
- 'Label': true,
62
60
  'Months': 'YYYYYYYYYYYY',
63
61
  'PostalCode': postal_code,
64
62
  'PrimaryIndicator': primary,
@@ -94,7 +92,6 @@ module Addresses
94
92
  'Id': current['Constituent']['Id'],
95
93
  },
96
94
  'Inactive': true,
97
- 'Label': true,
98
95
  'Months': 'YYYYYYYYYYYY',
99
96
  'PostalCode': current['PostalCode'],
100
97
  'State': {
@@ -17,6 +17,6 @@ module Constituencies
17
17
  }
18
18
  options.merge!(basic_auth: @auth, headers: @headers)
19
19
  options.merge!(:body => parameters.to_json)
20
- response = self.class.post(base_api_endpoint('CRM/Constituencies'), options)
20
+ self.class.post(base_api_endpoint('CRM/Constituencies'), options)
21
21
  end
22
22
  end
@@ -60,6 +60,55 @@ module Constituents
60
60
  self.class.post(base_api_endpoint('CRM/Constituents/Snapshot'), options)
61
61
  end
62
62
 
63
+ def create_constituent_by_snapshot_v16(first_name, last_name, email, phone, constituent_type, source, street1, street2, city, state, zip, country, options = {})
64
+ parameters =
65
+ {
66
+ 'ConstituentType': {
67
+ 'Id': constituent_type,
68
+ },
69
+ 'FirstName': first_name,
70
+ 'LastName': last_name,
71
+ 'OriginalSource': {
72
+ 'Id': source,
73
+ },
74
+ 'PrimaryAddress': {
75
+ 'AddressType': {
76
+ 'Id': 3,
77
+ },
78
+ 'City': city,
79
+ 'PostalCode': zip,
80
+ 'State': {
81
+ 'Id': state,
82
+ },
83
+ 'Street1': street1,
84
+ 'Street2': street2,
85
+ 'Country': {
86
+ 'Id': country,
87
+ },
88
+ },
89
+ 'PrimaryElectronicAddress': {
90
+ 'Address': email,
91
+ 'ElectronicAddressType': {
92
+ 'Id': 1,
93
+ },
94
+ 'AllowHtmlFormat': true,
95
+ 'Inactive': false,
96
+ 'AllowMarketing': false,
97
+ 'Months': 'YYYYYYYYYYYY',
98
+ 'PrimaryIndicator': true,
99
+ 'PrimaryPhone': {
100
+ 'PhoneNumber': phone,
101
+ 'PhoneType': {
102
+ 'Id': 5,
103
+ },
104
+ },
105
+ },
106
+ }
107
+ options.merge!(basic_auth: @auth, headers: @headers)
108
+ options.merge!(:body => parameters.to_json)
109
+ self.class.post(base_api_endpoint('CRM/Constituents/Snapshot'), options)
110
+ end
111
+
63
112
  def update_constituent(constituent_id, params, options = {})
64
113
  current = get_constituent_snapshot(constituent_id)
65
114
  if is_household?(current)
@@ -11,12 +11,15 @@ module Phones
11
11
  'Constituent': {
12
12
  'Id': id,
13
13
  },
14
+ 'Inactive': false,
14
15
  'PhoneNumber': phone,
15
16
  'PhoneType': {
16
17
  'Description': 'Cell Phone',
17
18
  'Id': 5,
18
19
  'Inactive': false,
19
20
  },
21
+ 'IsMobile': true,
22
+ 'PrimaryIndicator': true,
20
23
  }
21
24
  options.merge!(basic_auth: @auth, headers: @headers)
22
25
  options.merge!(:body => parameters.to_json)
@@ -1,6 +1,6 @@
1
1
  module Appeals
2
2
  def get_appeal_info(appeal_id, options = {})
3
3
  options.merge!(basic_auth: @auth, headers: @headers)
4
- response = self.class.get(base_api_endpoint("Finance/Appeals/#{appeal_id}"), options)
4
+ self.class.get(base_api_endpoint("Finance/Appeals/#{appeal_id}"), options)
5
5
  end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  module PaymentGateway
2
- def authorize_payment(amount, store_card, payload, payment_id, return_url, constituent_id, shopper_ip, address, delivery_date, options = {})
2
+ def authorize_payment(amount, store_card, payload, payment_id, return_url, constituent, shopper_ip, address, delivery_date, options = {})
3
3
  parameters = {
4
4
  'Amount': amount,
5
5
  'StoreAccount': store_card,
@@ -7,12 +7,17 @@ module PaymentGateway
7
7
  'TessituraMerchantServicesData': payload,
8
8
  },
9
9
  'PaymentId': payment_id,
10
- 'ConstituentId': constituent_id,
10
+ 'ConstituentId': constituent.customer_no,
11
11
  'TransactionOrigin': 'webapi',
12
12
  'PaymentMethodId': 606,
13
13
  'ReturnUrl': return_url,
14
14
  'IsECommerce': true,
15
15
  'ShopperIp': shopper_ip,
16
+ 'ShopperEmail': constituent.email,
17
+ 'ShopperName': {
18
+ 'FirstName': constituent.first_name,
19
+ 'LastName': constituent.last_name,
20
+ },
16
21
  'BillingAddress': {
17
22
  'PostalCode': address.postal_code,
18
23
  'Street1': address.street1,
@@ -14,6 +14,7 @@ module Package
14
14
  options.merge!(basic_auth: @auth, headers: @headers)
15
15
  options.merge!(:body => parameters.to_json)
16
16
  response = self.class.post(base_api_endpoint('TXN/Packages/Search'), options)
17
+ JSON.parse(response.body)
17
18
  end
18
19
 
19
20
  def get_package_detail(id, mode_of_sale, options = {})
@@ -13,8 +13,7 @@ module PerformanceExtension
13
13
 
14
14
  def get_performance_summaries(production_season_id, performance_ids = nil, season_ids = nil, options = {})
15
15
  options.merge!(basic_auth: @auth, headers: @headers)
16
- response = self.class.get(base_api_endpoint("/TXN/Performances/Summary?performanceIds=#{performance_ids}&seasonIds=#{season_ids}&productionSeasonId=#{production_season_id}"),
17
- options)
16
+ response = self.class.get(base_api_endpoint("TXN/Performances/Summary?performanceIds=#{performance_ids}&seasonIds=#{season_ids}&productionSeasonId=#{production_season_id}"), options)
18
17
  JSON.parse(response.body)
19
18
  end
20
19
 
@@ -24,6 +23,12 @@ module PerformanceExtension
24
23
  JSON.parse(response.body)
25
24
  end
26
25
 
26
+ def get_performance_availability_v16(mode_of_sale, performance_ids, options = {})
27
+ options.merge!(basic_auth: @auth, headers: @headers)
28
+ response = self.class.get(base_api_endpoint("TXN/Performances/Availability?modeOfSaleId=#{mode_of_sale}&productionSeasonIds=#{performance_ids}"), options)
29
+ JSON.parse(response.body)
30
+ end
31
+
27
32
  def get_performance_availability(ids, sections_ids = nil, options = {})
28
33
  options.merge!(basic_auth: @auth, headers: @headers)
29
34
  response = self.class.get(base_api_endpoint("TXN/Performances/Zones?performanceIds=#{ids}&sectionIds=#{sections_ids}"), options)
@@ -44,22 +49,18 @@ module PerformanceExtension
44
49
 
45
50
  def get_performance_seat_summaries(id, mode_of_sale, constituent_id, price_type_ids, options = {})
46
51
  options.merge!(basic_auth: @auth, headers: @headers)
47
- response = self.class.get(
48
- base_api_endpoint("TXN/Performances/#{id}/Seats/Summary?modeOfSaleId=#{mode_of_sale}&constituentId=#{constituent_id}&checkPriceTypeIds=#{price_type_ids}"), options
49
- )
52
+ response = self.class.get(base_api_endpoint("TXN/Performances/#{id}/Seats/Summary?modeOfSaleId=#{mode_of_sale}&constituentId=#{constituent_id}&checkPriceTypeIds=#{price_type_ids}"), options)
50
53
  JSON.parse(response.body)
51
54
  end
52
55
 
53
56
  def get_performance_prices(id, mos, source, options = {})
54
57
  options.merge!(basic_auth: @auth, headers: @headers)
55
- options.merge!(:headers => { 'Content-Type' => 'application/json' })
56
58
  response = self.class.get(base_api_endpoint("TXN/Performances/Prices?performanceIds=#{id}&modeOfSaleId=#{mos}&sourceId=#{source}"), options)
57
59
  JSON.parse(response.body)
58
60
  end
59
61
 
60
62
  def get_seat_holds(id, hold_code_ids, options = {})
61
63
  options.merge!(basic_auth: @auth, headers: @headers)
62
- options.merge!(:headers => { 'Content-Type' => 'application/json' })
63
64
  response = self.class.get(base_api_endpoint("TXN/Performances/#{id}/Seats/Holds?holdCodeIds=#{hold_code_ids}"), options)
64
65
  JSON.parse(response.body)
65
66
  end
@@ -1,3 +1,3 @@
1
1
  class TessituraRest
2
- VERSION = '1.5.1'.freeze
2
+ VERSION = '1.5.3'.freeze
3
3
  end
@@ -58,7 +58,7 @@ module Cart
58
58
  self.class.delete(base_api_endpoint("Web/Cart/#{session_key}/Payments/GiftCertificate/#{gift_certificate_number}"), options)
59
59
  end
60
60
 
61
- def add_contribution(session_key, amount, fund, membership_level, renew = nil, upgrade = nil, options = {})
61
+ def add_contribution(session_key, amount, fund, membership_level, renew = false, upgrade = false, options = {})
62
62
  parameters =
63
63
  {
64
64
  'Amount': amount,
@@ -12,7 +12,6 @@ module Login
12
12
  'Password': password,
13
13
  'LoginTypeId': login_type_id,
14
14
  'PromotionCode': promotion,
15
- 'PersistSessionOnFailure': true,
16
15
  }
17
16
  options.merge!(basic_auth: @auth, headers: @headers)
18
17
  options.merge!(:body => parameters.to_json)
@@ -47,7 +46,7 @@ module Login
47
46
  post.success?
48
47
  end
49
48
 
50
- def login_as_guest(email, key, options = {})
49
+ def login_as_guest(email, session_key, options = {})
51
50
  # promotion will be added as a parameter in v 16.0
52
51
  parameters =
53
52
  {
@@ -57,13 +56,12 @@ module Login
57
56
  }
58
57
  options.merge!(basic_auth: @auth, headers: @headers)
59
58
  options.merge!(body: parameters.to_json)
60
- response = self.class.post(base_api_endpoint("Web/Session/#{key}/LoginAsGuest"), options)
59
+ response = self.class.post(base_api_endpoint("Web/Session/#{session_key}/LoginAsGuest"), options)
61
60
  JSON.parse(response.body)
62
61
  end
63
62
 
64
63
  def logout(session_key, options = {})
65
64
  options.merge!(basic_auth: @auth, headers: @headers)
66
- options.merge!(:body => {})
67
- self.class.post(base_api_endpoint("/Web/Session/#{session_key}/Logout"), options)
65
+ self.class.post(base_api_endpoint("Web/Session/#{session_key}/Logout"), options)
68
66
  end
69
67
  end
@@ -1,4 +1,5 @@
1
1
  module PaymentPlanExtension
2
+ # to be deprecated
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 = {})
3
4
  parameters =
4
5
  {
@@ -37,4 +37,42 @@ module Registration
37
37
  options.merge!(:body => parameters.to_json)
38
38
  self.class.post(base_api_endpoint("Web/Registration/#{session_key}/Register"), options)
39
39
  end
40
+
41
+ def register_user_v16(session_key, address, first_name, last_name, email, password, promotion, special_offer, phone, options = {})
42
+ parameters =
43
+ {
44
+ 'FirstName': first_name,
45
+ 'LastName': last_name,
46
+ 'PrimaryElectronicAddress': {
47
+ 'Address': email,
48
+ 'AllowMarketing': special_offer || 0,
49
+ },
50
+ 'WebLogin': {
51
+ 'Login': email,
52
+ 'LoginTypeId': 1,
53
+ 'Password': password,
54
+ },
55
+ 'PrimaryAddress': {
56
+ 'AddressTypeId': 3,
57
+ 'City': address.city,
58
+ 'PostalCode': address.postal_code,
59
+ 'StateId': address.state,
60
+ 'Street1': address.street1,
61
+ 'Street2': address.street2,
62
+ 'CountryId': address.country,
63
+ },
64
+ 'ConstituentTypeId': 1,
65
+ 'OriginalSourceId': 3,
66
+ 'SourceId': promotion,
67
+ 'PrimaryPhone':
68
+ {
69
+ 'PhoneNumber': phone,
70
+ 'PhoneTypeId': 5,
71
+ },
72
+ }
73
+ options.merge!(basic_auth: @auth, headers: @headers)
74
+ options.merge!(:body => parameters.to_json)
75
+ self.class.post(base_api_endpoint("Web/Registration/#{session_key}/Register"), options)
76
+ end
77
+
40
78
  end
@@ -51,6 +51,18 @@ module Session
51
51
  JSON.parse(response.body)
52
52
  end
53
53
 
54
+ def set_expiration_v16(key, expiration, timeoffset = 0, options = {})
55
+ parameters =
56
+ {
57
+ 'Expiration': expiration,
58
+ 'TimeOffset': timeoffset,
59
+ }
60
+ options.merge!(basic_auth: @auth, headers: @headers)
61
+ options.merge!(:body => parameters.to_json)
62
+ response = self.class.put(base_api_endpoint("Web/Session/#{key}/Expiration"), options)
63
+ JSON.parse(response.body)
64
+ end
65
+
54
66
  def load_existing_order(key, order_id, options = {})
55
67
  options.merge!(basic_auth: @auth, headers: @headers)
56
68
  self.class.post(base_api_endpoint("Web/Session/#{key}/LoadOrder/#{order_id}"), options)
@@ -86,6 +98,19 @@ module Session
86
98
  self.class.post(base_api_endpoint("/Web/Session/#{key}/Login/SendCredentials"), options)
87
99
  end
88
100
 
101
+ def send_credentials_v16(key, email, login_type, template_id, options = {})
102
+ parameters =
103
+ {
104
+ 'TemplateFormatId': template_id,
105
+ 'LoginTypeId': login_type,
106
+ 'EmailAddress': email,
107
+ 'IsPriority': true,
108
+ }
109
+ options.merge!(basic_auth: @auth, headers: @headers)
110
+ options.merge!(:body => parameters.to_json)
111
+ self.class.post(base_api_endpoint("/Web/Session/#{key}/Login/SendCredentials"), options)
112
+ end
113
+
89
114
  def update_login(key, user_name, old_password, new_password, email, new_email, options = {})
90
115
  parameters =
91
116
  {
@@ -52,6 +52,6 @@ class TessituraRest
52
52
  end
53
53
 
54
54
  def base_api_endpoint(end_point)
55
- "#{ENV.fetch('TESSITURA_URL')}#{end_point}"
55
+ "#{ENV.fetch('TESSITURA_v16_URL')}#{end_point}"
56
56
  end
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tessitura_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brittany Martin, Danielle Greaves, Craig Donavin, Patrick FitzGerald
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-29 00:00:00.000000000 Z
11
+ date: 2024-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -175,7 +175,7 @@ homepage: https://github.com/pgharts/tessitura
175
175
  licenses:
176
176
  - MIT
177
177
  metadata: {}
178
- post_install_message:
178
+ post_install_message:
179
179
  rdoc_options: []
180
180
  require_paths:
181
181
  - lib
@@ -190,8 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0'
192
192
  requirements: []
193
- rubygems_version: 3.0.3.1
194
- signing_key:
193
+ rubygems_version: 3.5.8
194
+ signing_key:
195
195
  specification_version: 4
196
196
  summary: Rest API Endpoint for the Tessitura Rest API (v14+).
197
197
  test_files: []