genesis_ruby 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Gemfile.lock +2 -4
  4. data/README.md +88 -3
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions.rb +43 -0
  7. data/lib/genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types.rb +43 -0
  8. data/lib/genesis_ruby/api/constants/transactions.rb +1 -5
  9. data/lib/genesis_ruby/api/mixins/requests/financial/cards/mpi_attributes.rb +14 -4
  10. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_attributes.rb +2 -0
  11. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_indian_card_attributes.rb +4 -0
  12. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +166 -0
  13. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/car_rental_attributes.rb +119 -0
  14. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/hotel_rental_attributes.rb +77 -0
  15. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/reference_ticket_attributes.rb +75 -0
  16. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/travel_attributes.rb +34 -0
  17. data/lib/genesis_ruby/api/requests/financial/capture.rb +3 -1
  18. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +3 -1
  19. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +3 -1
  20. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +3 -1
  21. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +3 -1
  22. data/lib/genesis_ruby/builders/xml.rb +6 -0
  23. data/lib/genesis_ruby/utils/transactions/financial_types.rb +1 -1
  24. data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +1 -1
  25. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/base.rb +33 -0
  26. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg.rb +97 -0
  27. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax.rb +42 -0
  28. data/lib/genesis_ruby/utils/transactions/wpf_types.rb +1 -1
  29. data/lib/genesis_ruby/version.rb +1 -1
  30. metadata +13 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bae58236ea63ffb79254010e7dd8651252a8f128eb3c9e245eaf6cc4588c426
4
- data.tar.gz: e9bc31285e5acceefe5df452d274445f6b88e3039115d313ea1361b9990cc149
3
+ metadata.gz: 5629a8aa5e0635fa0106507b7ca62e605065007441fff2479c1ec390237d8382
4
+ data.tar.gz: c618d130f46775abfeda2cc340050c6cdb5492fcd97ba64a2bc0bafac5db086b
5
5
  SHA512:
6
- metadata.gz: 235e870d4dc316eface0f780352fe0129293740742ab45b6638d839cf51cbd9296e193be9a9cf533da6f1c089e39885e47fbf4220523a715a1db8c3c821a3b6c
7
- data.tar.gz: 346de3c0848acea9c8394323b8377fc1fb86eab52fa125f30586dcb71bf0f2422d7f128fe3152547284274ca5eddde44a1a1d96206d9391bcf65525669f46529
6
+ metadata.gz: 592d0e476d4e7a0bb1920eef3c807ff420adb6c35e3bd32a6ad1bef6e7582ddc90d4b1b4d7d1998d9873865af22ded0c7bcacc2950331234705f1658a61a71f9
7
+ data.tar.gz: c3d712b3f128740ce84d32bad8302e030fc2826cb0f0b06cfaec1e26e2e96efe0ef2f271e6afe869b72b9db823f0724644dab4b3b30a1e6240008cc740617a8a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ 0.1.7
2
+ -----
3
+ **Features**:
4
+
5
+ * Removed GiroPay transaction type support through the Web Payment Form
6
+ * Added Protocol Sub Version parameter support part of the MPI attributes
7
+ * Added Level 3 Travel Data attributes support to the following transaction requests:
8
+ * Sale
9
+ * Sale 3D
10
+ * Authorize
11
+ * Authorize 3D
12
+ * Init Recurring Sale
13
+ * Init Recurring Sale 3D
14
+ * RecurringSale
15
+ * Capture
16
+
1
17
  0.1.6
2
18
  -----
3
19
  **Features**:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- genesis_ruby (0.1.6)
4
+ genesis_ruby (0.1.7)
5
5
  net-http (~> 0.3.2)
6
6
  nokogiri (~> 1.14)
7
7
 
@@ -39,14 +39,12 @@ GEM
39
39
  json (2.7.1)
40
40
  language_server-protocol (3.17.0.3)
41
41
  mini_mime (1.1.5)
42
- mini_portile2 (2.8.5)
43
42
  multi_xml (0.6.0)
44
43
  mustermann (3.0.0)
45
44
  ruby2_keywords (~> 0.0.1)
46
45
  net-http (0.3.2)
47
46
  uri
48
- nokogiri (1.15.6)
49
- mini_portile2 (~> 2.8.2)
47
+ nokogiri (1.16.6-x86_64-darwin)
50
48
  racc (~> 1.4)
51
49
  octokit (7.2.0)
52
50
  faraday (>= 1, < 3)
data/README.md CHANGED
@@ -1,11 +1,13 @@
1
1
 
2
- # Genesis Ruby
3
-
2
+ Genesis Ruby
3
+ ========
4
+ [![Gem Version](https://badge.fury.io/rb/genesis_ruby.svg)](https://badge.fury.io/rb/genesis_ruby)
4
5
  [![Software License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](LICENSE)
5
6
 
6
7
  Ruby Client for Genesis Payment Processing Gateway
7
8
 
8
- ## Overview
9
+ Overview
10
+ --------
9
11
 
10
12
  Client Library for processing payments through Genesis Payment Processing Gateway. Its highly recommended to checkout "Genesis Payment Gateway API Documentation" first, in order to get an overview of Genesis's Payment Gateway API and functionality.
11
13
 
@@ -485,6 +487,89 @@ request.recurring_type = GenesisRuby::Api::Constants::Transactions::Parameters::
485
487
  ```
486
488
  </details>
487
489
 
490
+ #### Level 3 Travel Data
491
+ Level 3 travel data is supplied as optional data to the standard API request. If the supplied is valid travel data then the transaction will be processed as a travel transaction and will qualify for the travel Incentive rates. Otherwise the transaction will be processed normally as a regular transaction. Note that the travel data will be stored as part of the transaction in all cases.
492
+
493
+ <details>
494
+ <summary>Example Leg Data</summary>
495
+
496
+ ```ruby
497
+ GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Leg.new departure_date: '2034-12-31',
498
+ arrival_date: '2034-12-31',
499
+ carrier_code: 12,
500
+ service_class: 1,
501
+ origin_city: 'VAR',
502
+ destination_city: 'FRA',
503
+ stopover_code: 0,
504
+ fare_basis_code: 1,
505
+ flight_number: 'W1234',
506
+ departure_time: '11:37',
507
+ departure_time_segment: 'P'
508
+ ```
509
+
510
+ </details>
511
+
512
+ <details>
513
+ <summary>Example Tax Data</summary>
514
+
515
+ ```ruby
516
+ GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Tax.new fee_type: 'type',
517
+ fee_amount: 0.99 # will converted automatically to minor format based on the currency
518
+ ```
519
+
520
+ </details>
521
+
522
+ <details>
523
+ <summary>Example Level 3 Travel Data</summary>
524
+
525
+ ```ruby
526
+ # Ticket attributes
527
+ request.travel_aid_ticket_number = '123456789012345'
528
+ request.travel_aid_passenger_name = 'Test Example'
529
+ request.travel_aid_customer_code = 1
530
+ request.travel_aid_issuing_carrier = 'AAAA'
531
+ request.travel_aid_total_fare = '0.99' # will converted automatically to minor format based on the currency
532
+ request.travel_aid_agency_name = 'Agency'
533
+ request.travel_aid_agency_code = 'AG001'
534
+ request.travel_aid_date_of_issue = '2018-02-01'
535
+ request.travel_aid_restricted_ticket_indicator = 1
536
+ request.travel_aid_confirmation_information = 'Confirmation'
537
+
538
+ request.add_travel_aid_leg leg
539
+ request.add_travel_aid_tax tax
540
+
541
+ # Car rental
542
+ request.travel_car_rental_purchase_identifier = '12478'
543
+ request.travel_car_rental_class_id = 3
544
+ request.travel_car_rental_pickup_date = '2034-12-31'
545
+ request.travel_car_rental_renter_name = 'John Smith'
546
+ request.travel_car_rental_return_city = 'Varna'
547
+ request.travel_car_rental_return_state = 'VAR'
548
+ request.travel_car_rental_return_country = 'BGR'
549
+ request.travel_car_rental_return_date = '2034-12-31'
550
+ request.travel_car_rental_renter_return_location_id = '12478'
551
+ request.travel_car_rental_customer_code = 1
552
+ request.travel_car_rental_extra_charges = 2
553
+ request.travel_car_rental_no_show_indicator = 1
554
+
555
+ # Hotel Rental attributes
556
+ request.travel_hotel_rental_purchase_identifier = '12478'
557
+ request.travel_hotel_rental_arrival_date = '2034-12-31'
558
+ request.travel_hotel_rental_departure_date = '2034-12-31'
559
+ request.travel_hotel_rental_customer_code = '12478'
560
+ request.travel_hotel_rental_no_show_indicator = 1
561
+
562
+ # Reference Ticket Attributes
563
+ request.travel_ac_ticket_reference_id = '8b7e3575e5605ea7e1895707a3e92837'
564
+ request.travel_ac_ticket_document_number = '1111'
565
+ request.travel_ac_issued_with_ticket_number = '12321'
566
+
567
+ # Ancillary Charges
568
+ request.travel_ac_type = 'BF'
569
+ request.travel_ac_sub_type = 'BG'
570
+ ```
571
+
572
+ </details>
488
573
 
489
574
  ## Response
490
575
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -0,0 +1,43 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Constants
4
+ module Transactions
5
+ module Parameters
6
+ # Mpi Protocol Versions allowed values
7
+ class MpiProtocolSubVersions
8
+
9
+ extend Mixins::Constants::Common
10
+
11
+ # Sub-protocol Version 1
12
+ PROTOCOL_SUB_VERSION_1 = 1
13
+
14
+ # Sub-protocol Version 2
15
+ PROTOCOL_SUB_VERSION_2 = 2
16
+
17
+ # Sub-protocol Version 3
18
+ PROTOCOL_SUB_VERSION_3 = 3
19
+
20
+ # Sub-protocol Version 4
21
+ PROTOCOL_SUB_VERSION_4 = 4
22
+
23
+ # Sub-protocol Version 5
24
+ PROTOCOL_SUB_VERSION_5 = 5
25
+
26
+ # Sub-protocol Version 6
27
+ PROTOCOL_SUB_VERSION_6 = 6
28
+
29
+ # Sub-protocol Version 7
30
+ PROTOCOL_SUB_VERSION_7 = 7
31
+
32
+ # Sub-protocol Version 8
33
+ PROTOCOL_SUB_VERSION_8 = 8
34
+
35
+ # Sub-protocol Version 9
36
+ PROTOCOL_SUB_VERSION_9 = 9
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Constants
4
+ module Transactions
5
+ module Parameters
6
+ module TravelData
7
+ # Ancillary Charges Types
8
+ # Identify the Service Category Code for the primary type of service that has been provided
9
+ class AncillaryChargesTypes
10
+
11
+ extend Mixins::Constants::Common
12
+
13
+ BF = 'BF'.freeze
14
+ BG = 'BG'.freeze
15
+ CF = 'CF'.freeze
16
+ CG = 'CG'.freeze
17
+ CO = 'CO'.freeze
18
+ FF = 'FF'.freeze
19
+ GF = 'GF'.freeze
20
+ GT = 'GT'.freeze
21
+ IE = 'IE'.freeze
22
+ LG = 'LG'.freeze
23
+ MD = 'MD'.freeze
24
+ ML = 'ML'.freeze
25
+ OT = 'OT'.freeze
26
+ PA = 'PA'.freeze
27
+ PT = 'PT'.freeze
28
+ SA = 'SA'.freeze
29
+ SB = 'SB'.freeze
30
+ SF = 'SF'.freeze
31
+ ST = 'ST'.freeze
32
+ TS = 'TS'.freeze
33
+ UN = 'UN'.freeze
34
+ UP = 'UP'.freeze
35
+ WI = 'WI'.freeze
36
+
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -115,10 +115,6 @@ module GenesisRuby
115
115
  # They can also be refunded.
116
116
  FASHIONCHEQUE = 'fashioncheque'.freeze
117
117
 
118
- # GiroPay
119
- # Direct PPRO transaction
120
- GIROPAY = 'giropay'.freeze
121
-
122
118
  # Google Pay allows shoppers to purchase with credit and debit cards linked to their Google account.
123
119
  GOOGLE_PAY = 'google_pay'.freeze
124
120
 
@@ -260,7 +256,7 @@ module GenesisRuby
260
256
  # PostFinance is an online banking provider in Switzerland
261
257
  POST_FINANCE = 'post_finance'.freeze
262
258
 
263
- # Supports payments via EPS, SafetyPay, TrustPay, ELV, Przelewy24, and GiroPay
259
+ # Supports payments via EPS, SafetyPay, TrustPay, ELV, Przelewy24
264
260
  PPRO = 'ppro'.freeze
265
261
 
266
262
  # PSE (Pagos Seguros en Linea) is the preferred alternative payment solution in Colombia.
@@ -1,4 +1,5 @@
1
1
  require 'genesis_ruby/api/constants/transactions/parameters/mpi_protocol_versions'
2
+ require 'genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions'
2
3
 
3
4
  module GenesisRuby
4
5
  module Api
@@ -9,9 +10,8 @@ module GenesisRuby
9
10
  # Mixin Mpi Attributes
10
11
  module MpiAttributes
11
12
 
12
- attr_reader :mpi_threeds_challenge_indicator, :mpi_protocol_version
13
- attr_accessor :mpi_cavv, :mpi_eci, :mpi_xid, :mpi_directory_server_id,
14
- :mpi_asc_transaction_id
13
+ attr_reader :mpi_threeds_challenge_indicator, :mpi_protocol_version, :mpi_protocol_sub_version
14
+ attr_accessor :mpi_cavv, :mpi_eci, :mpi_xid, :mpi_directory_server_id, :mpi_asc_transaction_id
15
15
 
16
16
  # The used 3DS protocol version. Default is 1 if not supplied.
17
17
  def mpi_protocol_version=(value)
@@ -31,6 +31,15 @@ module GenesisRuby
31
31
  allowed_options attribute: __method__, allowed: allowed_indicators, value: value, allow_empty: true
32
32
  end
33
33
 
34
+ # The used 3DSv2 authentication protocol.
35
+ def mpi_protocol_sub_version=(value)
36
+ allowed_options attribute: __method__,
37
+ allowed: GenesisRuby::Api::Constants::Transactions::Parameters::
38
+ MpiProtocolSubVersions.all,
39
+ value: value.to_i,
40
+ allow_empty: true
41
+ end
42
+
34
43
  protected
35
44
 
36
45
  # Mpi Attributes Structure
@@ -41,7 +50,8 @@ module GenesisRuby
41
50
  protocol_version: mpi_protocol_version,
42
51
  directory_server_id: mpi_directory_server_id,
43
52
  acs_transaction_id: mpi_asc_transaction_id,
44
- threeds_challenge_indicator: mpi_threeds_challenge_indicator
53
+ threeds_challenge_indicator: mpi_threeds_challenge_indicator,
54
+ protocol_sub_version: mpi_protocol_sub_version
45
55
  }
46
56
  end
47
57
 
@@ -1,3 +1,5 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/managed_recurring/modes'
2
+ require 'genesis_ruby/api/constants/transactions/parameters/managed_recurring/intervals'
1
3
  require 'genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_indian_card_attributes'
2
4
 
3
5
  module GenesisRuby
@@ -1,3 +1,7 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/managed_recurring/payment_types'
2
+ require 'genesis_ruby/api/constants/transactions/parameters/managed_recurring/amount_types'
3
+ require 'genesis_ruby/api/constants/transactions/parameters/managed_recurring/frequencies'
4
+
1
5
  module GenesisRuby
2
6
  module Api
3
7
  module Mixins
@@ -0,0 +1,166 @@
1
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg'
2
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax'
3
+
4
+ module GenesisRuby
5
+ module Api
6
+ module Mixins
7
+ module Requests
8
+ module Financial
9
+ module TravelData
10
+ # Level 3 Data Airline Itinerary Attributes
11
+ module AirlineItineraryAttributes
12
+
13
+ attr_reader :travel_aid_restricted_ticket_indicator, :travel_aid_ticket_number,
14
+ :travel_aid_passenger_name, :travel_aid_customer_code, :travel_aid_issuing_carrier,
15
+ :travel_aid_agency_name, :travel_aid_agency_code
16
+ attr_accessor :travel_aid_total_fare, :travel_aid_confirmation_information
17
+
18
+ # Date Of Issue
19
+ def travel_aid_date_of_issue
20
+ @travel_aid_date_of_issue&.strftime GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
21
+ end
22
+
23
+ # Date Of Issue
24
+ def travel_aid_date_of_issue=(value)
25
+ parse_date attribute: __method__, value: value, allow_empty: true
26
+ end
27
+
28
+ # Restricted Ticket Indicator
29
+ def travel_aid_restricted_ticket_indicator=(value)
30
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [0, 1]
31
+ end
32
+
33
+ # Ticket Number
34
+ def travel_aid_ticket_number=(value)
35
+ limited_string attribute: __method__, value: value, max: 15
36
+ end
37
+
38
+ # Passenger name
39
+ def travel_aid_passenger_name=(value)
40
+ limited_string attribute: __method__, value: value, max: 29
41
+ end
42
+
43
+ # Customer code
44
+ def travel_aid_customer_code=(value)
45
+ limited_string attribute: __method__, value: value, max: 17
46
+ end
47
+
48
+ # Issuing carrier
49
+ def travel_aid_issuing_carrier=(value)
50
+ limited_string attribute: __method__, value: value, max: 4
51
+ end
52
+
53
+ # Agency name
54
+ def travel_aid_agency_name=(value)
55
+ limited_string attribute: __method__, value: value, max: 30
56
+ end
57
+
58
+ # Agency code
59
+ def travel_aid_agency_code=(value)
60
+ limited_string attribute: __method__, value: value, max: 8
61
+ end
62
+
63
+ # AirlineItinerary Legs data. Max legs 10
64
+ def travel_aid_legs
65
+ @travel_aid_legs || []
66
+ end
67
+
68
+ # AirlineItinerary Taxes data. Max taxes 10
69
+ def travel_aid_taxes
70
+ @travel_aid_taxes || []
71
+ end
72
+
73
+ # Add a single AirlineItinerary Leg data
74
+ def add_travel_aid_leg(leg)
75
+ @travel_aid_legs ||= travel_aid_legs
76
+ leg_obj = GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Leg
77
+
78
+ raise InvalidArgumentError, "Leg must be instance of #{leg_obj.name}" unless leg.instance_of? leg_obj
79
+
80
+ if travel_aid_legs.count == ALLOWED_ITEMS_COUNT
81
+ raise InvalidArgumentError, "Allowed Legs count exceeded. Allowed #{ALLOWED_ITEMS_COUNT}."
82
+ end
83
+
84
+ @travel_aid_legs.push leg
85
+ end
86
+
87
+ # Add a single AirlineItinerary Tax data
88
+ def add_travel_aid_tax(tax)
89
+ @travel_aid_taxes ||= travel_aid_taxes
90
+ tax_obj = GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Tax
91
+
92
+ raise InvalidArgumentError, "Tax must be instance of #{tax_obj.name}" unless tax.instance_of? tax_obj
93
+
94
+ if travel_aid_taxes.count == ALLOWED_ITEMS_COUNT
95
+ raise InvalidArgumentError, "Allowed Legs count exceeded. Allowed #{ALLOWED_ITEMS_COUNT}."
96
+ end
97
+
98
+ @travel_aid_taxes.push tax
99
+ end
100
+
101
+ # Reset Legs data
102
+ def clear_travel_aid_legs
103
+ @travel_aid_legs = []
104
+ end
105
+
106
+ # Reset Taxes
107
+ def clear_travel_aid_taxes
108
+ @travel_aid_taxes = []
109
+ end
110
+
111
+ protected
112
+
113
+ ALLOWED_ITEMS_COUNT = 10
114
+
115
+ # Legs structure
116
+ def legs_structure
117
+ parse_items 'leg', travel_aid_legs
118
+ end
119
+
120
+ # Taxes structure
121
+ def taxes_structure
122
+ parse_items 'tax', travel_aid_taxes
123
+ end
124
+
125
+ # Prepare structure
126
+ def parse_items(node_name, items)
127
+ data = []
128
+
129
+ items.each do |item|
130
+ item.currency = currency if item.respond_to?(:currency) && respond_to?(:currency)
131
+ data.push item.attributes_structure
132
+ end
133
+
134
+ Hash[node_name.to_sym, data]
135
+ end
136
+
137
+ # Attributes Structure
138
+ def airline_attributes_structure # rubocop:disable RSpec/MethodLength
139
+ {
140
+ ticket_number: travel_aid_ticket_number,
141
+ passenger_name: travel_aid_passenger_name,
142
+ customer_code: travel_aid_customer_code,
143
+ restricted_ticket_indicator: travel_aid_restricted_ticket_indicator,
144
+ issuing_carrier: travel_aid_issuing_carrier,
145
+ total_fare: parse_total_fare,
146
+ agency_name: travel_aid_agency_name,
147
+ agency_code: travel_aid_agency_code,
148
+ confirmation_information: travel_aid_confirmation_information,
149
+ date_of_issue: travel_aid_date_of_issue
150
+ }
151
+ end
152
+
153
+ # Parse Total Fare amount
154
+ def parse_total_fare
155
+ return travel_aid_total_fare if currency.nil? || travel_aid_total_fare.nil?
156
+
157
+ transform_amount travel_aid_total_fare, currency
158
+ end
159
+
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,119 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Car Rental attributes
8
+ module CarRentalAttributes
9
+
10
+ attr_reader :travel_car_rental_purchase_identifier, :travel_car_rental_class_id,
11
+ :travel_car_rental_renter_name, :travel_car_rental_return_city,
12
+ :travel_car_rental_return_state, :travel_car_rental_return_country,
13
+ :travel_car_rental_renter_return_location_id, :travel_car_rental_customer_code,
14
+ :travel_car_rental_extra_charges, :travel_car_rental_no_show_indicator
15
+
16
+ # Travel Data Purchase Identifier
17
+ def travel_car_rental_purchase_identifier=(value)
18
+ limited_string attribute: __method__, value: value, max: 9
19
+ end
20
+
21
+ # Travel Data Class id
22
+ def travel_car_rental_class_id=(value)
23
+ allowed_options attribute: __method__,
24
+ value: value.to_i,
25
+ allow_empty: true,
26
+ allowed: [*1..30].push(9999)
27
+ end
28
+
29
+ # Travel Data PickUp Date
30
+ def travel_car_rental_pickup_date
31
+ @travel_car_rental_pickup_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
32
+ DD_MM_YYYY_L_HYPHENS
33
+ end
34
+
35
+ # Travel Data PickUp Date
36
+ def travel_car_rental_pickup_date=(value)
37
+ parse_date attribute: __method__, value: value, allow_empty: true
38
+ end
39
+
40
+ # Travel Data Renter Name
41
+ def travel_car_rental_renter_name=(value)
42
+ limited_string attribute: __method__, value: value, max: 20
43
+ end
44
+
45
+ # Travel Data Return City
46
+ def travel_car_rental_return_city=(value)
47
+ limited_string attribute: __method__, value: value, max: 18
48
+ end
49
+
50
+ # Travel Data Return State
51
+ def travel_car_rental_return_state=(value)
52
+ limited_string attribute: __method__, value: value, max: 3
53
+ end
54
+
55
+ # Travel Data Return Country
56
+ def travel_car_rental_return_country=(value)
57
+ limited_string attribute: __method__, value: value, max: 3
58
+ end
59
+
60
+ # Travel Data Return Date
61
+ def travel_car_rental_return_date
62
+ @travel_car_rental_return_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
63
+ DD_MM_YYYY_L_HYPHENS
64
+ end
65
+
66
+ # Travel Data Return Date
67
+ def travel_car_rental_return_date=(value)
68
+ parse_date attribute: __method__, value: value, allow_empty: true
69
+ end
70
+
71
+ # Travel Data Renter Return Location id
72
+ def travel_car_rental_renter_return_location_id=(value)
73
+ limited_string attribute: __method__, value: value, max: 10
74
+ end
75
+
76
+ # Travel Data Customer Code
77
+ def travel_car_rental_customer_code=(value)
78
+ limited_string attribute: __method__, value: value, max: 17
79
+ end
80
+
81
+ # Travel Data Extra Charges
82
+ def travel_car_rental_extra_charges=(value)
83
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [*1..5]
84
+ end
85
+
86
+ # Travel Data No Show Indicator
87
+ def travel_car_rental_no_show_indicator=(value)
88
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [0, 1]
89
+ end
90
+
91
+ protected
92
+
93
+ # Travel Data Car Rental Attributes Structure
94
+ def car_rental_attributes_structure # rubocop:disable Metrics/MethodLength
95
+ {
96
+ car_rental: {
97
+ purchase_identifier: travel_car_rental_purchase_identifier,
98
+ class_id: travel_car_rental_class_id,
99
+ pickup_date: travel_car_rental_pickup_date,
100
+ renter_name: travel_car_rental_renter_name,
101
+ return_city: travel_car_rental_return_city,
102
+ return_state: travel_car_rental_return_state,
103
+ return_country: travel_car_rental_return_country,
104
+ return_date: travel_car_rental_return_date,
105
+ renter_return_location_id: travel_car_rental_renter_return_location_id,
106
+ customer_code: travel_car_rental_customer_code,
107
+ extra_charges: travel_car_rental_extra_charges,
108
+ no_show_indicator: travel_car_rental_no_show_indicator
109
+ }
110
+ }
111
+ end
112
+
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,77 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Hotel Rental Attributes
8
+ module HotelRentalAttributes
9
+
10
+ attr_reader :travel_hotel_rental_purchase_identifier, :travel_hotel_rental_customer_code,
11
+ :travel_hotel_rental_extra_charges, :travel_hotel_rental_no_show_indicator
12
+
13
+ # Hotel Rental Purchase Identifier
14
+ def travel_hotel_rental_purchase_identifier=(value)
15
+ limited_string attribute: __method__, value: value, max: 10
16
+ end
17
+
18
+ # Travel Data Arrival date
19
+ def travel_hotel_rental_arrival_date
20
+ @travel_hotel_rental_arrival_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
21
+ DD_MM_YYYY_L_HYPHENS
22
+ end
23
+
24
+ # Travel Data Arrival Date
25
+ def travel_hotel_rental_arrival_date=(value)
26
+ parse_date attribute: __method__, value: value, allow_empty: true
27
+ end
28
+
29
+ # Travel Data Departure date
30
+ def travel_hotel_rental_departure_date
31
+ @travel_hotel_rental_departure_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
32
+ DD_MM_YYYY_L_HYPHENS
33
+ end
34
+
35
+ # Travel Data Departure Date
36
+ def travel_hotel_rental_departure_date=(value)
37
+ parse_date attribute: __method__, value: value, allow_empty: true
38
+ end
39
+
40
+ # Travel Data Customer Code
41
+ def travel_hotel_rental_customer_code=(value)
42
+ limited_string attribute: __method__, value: value, max: 17
43
+ end
44
+
45
+ # Travel Data Extra Charges
46
+ def travel_hotel_rental_extra_charges=(value)
47
+ allowed_options attribute: __method__, value: value, allow_empty: true, allowed: [*2..7]
48
+ end
49
+
50
+ # Travel Data No Show Indicator
51
+ def travel_hotel_rental_no_show_indicator=(value)
52
+ allowed_options attribute: __method__, value: value, allow_empty: true, allowed: [0, 1]
53
+ end
54
+
55
+ protected
56
+
57
+ # Hotel Rental attributes structure
58
+ def hotel_rental_attributes_structure
59
+ {
60
+ hotel_rental: {
61
+ purchase_identifier: travel_hotel_rental_purchase_identifier,
62
+ arrival_date: travel_hotel_rental_arrival_date,
63
+ departure_date: travel_hotel_rental_departure_date,
64
+ customer_code: travel_hotel_rental_customer_code,
65
+ extra_charges: travel_hotel_rental_extra_charges,
66
+ no_show_indicator: travel_hotel_rental_no_show_indicator
67
+ }
68
+ }
69
+ end
70
+
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,75 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types'
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module Financial
8
+ module TravelData
9
+ # Ancillary Charges
10
+ module ReferenceTicketAttributes
11
+
12
+ attr_reader :travel_ac_ticket_reference_id, :travel_ac_type, :travel_ac_ticket_document_number,
13
+ :travel_ac_issued_with_ticket_number, :travel_ac_sub_type
14
+
15
+ # Ancillary Charges ticker reference id
16
+ def travel_ac_ticket_reference_id=(value)
17
+ limited_string attribute: __method__, value: value, max: 32
18
+ end
19
+
20
+ # Ancillary Charges Type
21
+ def travel_ac_type=(value)
22
+ allowed_options attribute: __method__,
23
+ value: value.to_s.upcase,
24
+ allowed: GenesisRuby::Api::Constants::Transactions::Parameters::TravelData::
25
+ AncillaryChargesTypes.all,
26
+ allow_empty: true
27
+ end
28
+
29
+ # Ancillary Charges Ticket document number
30
+ def travel_ac_ticket_document_number=(value)
31
+ limited_string attribute: __method__, value: value, max: 15
32
+ end
33
+
34
+ # Ancillary Charges issued with ticket number
35
+ def travel_ac_issued_with_ticket_number=(value)
36
+ limited_string attribute: __method__, value: value, max: 15
37
+ end
38
+
39
+ # Ancillary Charges Sub Type
40
+ def travel_ac_sub_type=(value)
41
+ allowed_options attribute: __method__,
42
+ value: value.to_s.upcase,
43
+ allowed: GenesisRuby::Api::Constants::Transactions::Parameters::TravelData::
44
+ AncillaryChargesTypes.all,
45
+ allow_empty: true
46
+ end
47
+
48
+ protected
49
+
50
+ # Reference Ticket attributes structure
51
+ def reference_ticket_attributes_structure
52
+ {
53
+ ticket_reference_id: travel_ac_ticket_reference_id,
54
+ ticket_document_number: travel_ac_ticket_document_number,
55
+ issued_with_ticket_number: travel_ac_issued_with_ticket_number
56
+ }
57
+ end
58
+
59
+ # Ancillary Charges attributes structure
60
+ def charges_attributes_structure
61
+ {
62
+ charge: {
63
+ type: travel_ac_type,
64
+ sub_type: travel_ac_sub_type
65
+ }
66
+ }
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,34 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Travel Data Attributes
8
+ module TravelAttributes
9
+
10
+ include TravelData::AirlineItineraryAttributes
11
+ include TravelData::CarRentalAttributes
12
+ include TravelData::HotelRentalAttributes
13
+ include TravelData::ReferenceTicketAttributes
14
+
15
+ protected
16
+
17
+ # Travel Data attributes structure
18
+ def travel_data_attributes_structure
19
+ {
20
+ ticket: airline_attributes_structure.merge(reference_ticket_attributes_structure),
21
+ legs: legs_structure,
22
+ taxes: taxes_structure,
23
+ rentals: car_rental_attributes_structure.merge(hotel_rental_attributes_structure),
24
+ charges: charges_attributes_structure
25
+ }
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -6,6 +6,7 @@ module GenesisRuby
6
6
  class Capture < Requests::Base::Reference
7
7
 
8
8
  include Mixins::Requests::Financial::Business::BusinessAttributes
9
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
9
10
 
10
11
  protected
11
12
 
@@ -18,7 +19,8 @@ module GenesisRuby
18
19
  def reference_transaction_structure
19
20
  {
20
21
  reference_id: reference_id,
21
- business_attributes: business_attributes_structure
22
+ business_attributes: business_attributes_structure,
23
+ travel: travel_data_attributes_structure
22
24
  }
23
25
  end
24
26
 
@@ -23,6 +23,7 @@ module GenesisRuby
23
23
  include Mixins::Requests::Financial::ReferenceAttributes
24
24
  include Mixins::Requests::Financial::RiskAttributes
25
25
  include Mixins::Requests::Financial::ScaAttributes
26
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
26
27
 
27
28
  protected
28
29
 
@@ -55,7 +56,8 @@ module GenesisRuby
55
56
  recurring_type: recurring_type,
56
57
  recurring_category: recurring_category,
57
58
  sca_params: sca_attributes_structure,
58
- managed_recurring: managed_recurring_attributes_structure
59
+ managed_recurring: managed_recurring_attributes_structure,
60
+ travel: travel_data_attributes_structure
59
61
  )
60
62
  end
61
63
 
@@ -26,6 +26,7 @@ module GenesisRuby
26
26
  include Mixins::Requests::Financial::RiskAttributes
27
27
  include Mixins::Requests::Financial::ScaAttributes
28
28
  include Mixins::Requests::Financial::Threeds::Version2::CommonAttributes
29
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
29
30
 
30
31
  # Specifies the recurring type of transaction
31
32
  def recurring_type=(value)
@@ -67,7 +68,8 @@ module GenesisRuby
67
68
  recurring_category: recurring_category,
68
69
  sca_params: sca_attributes_structure,
69
70
  threeds_v2_params: threeds_v2_common_attributes_structure,
70
- managed_recurring: managed_recurring_attributes_structure
71
+ managed_recurring: managed_recurring_attributes_structure,
72
+ travel: travel_data_attributes_structure
71
73
  )
72
74
  end
73
75
 
@@ -22,6 +22,7 @@ module GenesisRuby
22
22
  include Mixins::Requests::Financial::ReferenceAttributes
23
23
  include Mixins::Requests::Financial::RiskAttributes
24
24
  include Mixins::Requests::Financial::ScaAttributes
25
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
25
26
 
26
27
  protected
27
28
 
@@ -54,7 +55,8 @@ module GenesisRuby
54
55
  recurring_type: recurring_type,
55
56
  recurring_category: recurring_category,
56
57
  sca_params: sca_attributes_structure,
57
- managed_recurring: managed_recurring_attributes_structure
58
+ managed_recurring: managed_recurring_attributes_structure,
59
+ travel: travel_data_attributes_structure
58
60
  )
59
61
  end
60
62
 
@@ -25,6 +25,7 @@ module GenesisRuby
25
25
  include Mixins::Requests::Financial::RiskAttributes
26
26
  include Mixins::Requests::Financial::ScaAttributes
27
27
  include Mixins::Requests::Financial::Threeds::Version2::CommonAttributes
28
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
28
29
 
29
30
  # Specifies the recurring type of transaction
30
31
  def recurring_type=(value)
@@ -66,7 +67,8 @@ module GenesisRuby
66
67
  recurring_category: recurring_category,
67
68
  sca_params: sca_attributes_structure,
68
69
  threeds_v2_params: threeds_v2_common_attributes_structure,
69
- managed_recurring: managed_recurring_attributes_structure
70
+ managed_recurring: managed_recurring_attributes_structure,
71
+ travel: travel_data_attributes_structure
70
72
  )
71
73
  end
72
74
 
@@ -86,6 +86,12 @@ module GenesisRuby
86
86
  # Build XMl Document part from Array
87
87
  def build_array(element_name, element_value)
88
88
  element_value.each do |tag_value|
89
+ if tag_value.is_a? Hash
90
+ add_node element_name, tag_value
91
+
92
+ next
93
+ end
94
+
89
95
  add_element element_name, tag_value
90
96
  end
91
97
  end
@@ -19,7 +19,7 @@ module GenesisRuby
19
19
  EFECTY, ELO, EPS,
20
20
  EZEECARD_PAYOUT, EZEEWALLET,
21
21
  FASHIONCHEQUE,
22
- GIROPAY, GOOGLE_PAY,
22
+ GOOGLE_PAY,
23
23
  IDEAL, IDEBIT_PAYIN, IDEBIT_PAYOUT, INCREMENTAL_AUTHORIZE, INSTA_DEBIT_PAYIN, INSTA_DEBIT_PAYOUT,
24
24
  INTERSOLVE, ITAU,
25
25
  MULTIBANCO, MY_BANK,
@@ -17,7 +17,7 @@ module GenesisRuby
17
17
  CAPTURE, CASHU,
18
18
  DAVIVIENDA,
19
19
  EFECTY, EPS, FASHIONCHEQUE,
20
- GIROPAY, GOOGLE_PAY,
20
+ GOOGLE_PAY,
21
21
  IDEAL, IDEBIT_PAYIN, INIT_RECURRING_SALE, INIT_RECURRING_SALE_3D, INVOICE_CAPTURE, ITAU,
22
22
  MY_BANK,
23
23
  NEOSURF,
@@ -0,0 +1,33 @@
1
+ module GenesisRuby
2
+ module Utils
3
+ module Transactions
4
+ module TravelData
5
+ module AirlineItinerary
6
+ # Airline Itinerary Data base class
7
+ class Base
8
+
9
+ include Api::Mixins::Requests::RestrictedSetter
10
+
11
+ # Constructor
12
+ def initialize(params = {}) # rubocop:disable Style/OptionHash
13
+ parse_attributes params if params.is_a? Hash
14
+
15
+ super()
16
+ end
17
+
18
+ # Item attribute structure
19
+ def attributes_structure; end
20
+
21
+ protected
22
+
23
+ # Initialize attributes
24
+ def parse_attributes(params)
25
+ params.each { |key, value| __send__ "#{key}=", value }
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,97 @@
1
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/base'
2
+
3
+ module GenesisRuby
4
+ module Utils
5
+ module Transactions
6
+ module TravelData
7
+ module AirlineItinerary
8
+ # Signify a single AirlineItinerary Leg data
9
+ class Leg < Base
10
+
11
+ attr_reader :carrier_code, :service_class, :origin_city, :destination_city, :fare_basis_code,
12
+ :flight_number, :departure_time_segment, :stopover_code
13
+ attr_accessor :departure_time
14
+
15
+ # Departure date
16
+ def departure_date
17
+ @departure_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
18
+ end
19
+
20
+ # Departure date
21
+ def departure_date=(value)
22
+ parse_date attribute: __method__, value: value, allow_empty: true
23
+ end
24
+
25
+ # Arrival date
26
+ def arrival_date
27
+ @arrival_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
28
+ end
29
+
30
+ # Arrival date
31
+ def arrival_date=(value)
32
+ parse_date attribute: __method__, value: value, allow_empty: true
33
+ end
34
+
35
+ # Carrier Code
36
+ def carrier_code=(value)
37
+ limited_string attribute: __method__, value: value.to_s, max: 2
38
+ end
39
+
40
+ # Service Class
41
+ def service_class=(value)
42
+ limited_string attribute: __method__, value: value.to_s, max: 1
43
+ end
44
+
45
+ # Origin City
46
+ def origin_city=(value)
47
+ limited_string attribute: __method__, value: value.to_s, max: 3
48
+ end
49
+
50
+ # Destination City
51
+ def destination_city=(value)
52
+ limited_string attribute: __method__, value: value.to_s, max: 3
53
+ end
54
+
55
+ # Fare basis code
56
+ def fare_basis_code=(value)
57
+ limited_string attribute: __method__, value: value.to_s, max: 6
58
+ end
59
+
60
+ # Flight number
61
+ def flight_number=(value)
62
+ limited_string attribute: __method__, value: value.to_s, max: 5
63
+ end
64
+
65
+ # Departure time segment
66
+ def departure_time_segment=(value)
67
+ allowed_options attribute: __method__, value: value.to_s, allowed: %w(A P), allow_empty: true
68
+ end
69
+
70
+ # Stopover code
71
+ def stopover_code=(value)
72
+ allowed_options attribute: __method__, value: value, allowed: [0, 1], allow_empty: true
73
+ end
74
+
75
+ # Get Single Leg structure
76
+ def attributes_structure # rubocop:disable Metrics/MethodLength
77
+ {
78
+ departure_date: departure_date,
79
+ arrival_date: arrival_date,
80
+ carrier_code: carrier_code,
81
+ service_class: service_class,
82
+ origin_city: origin_city,
83
+ destination_city: destination_city,
84
+ stopover_code: stopover_code,
85
+ fare_basis_code: fare_basis_code,
86
+ flight_number: flight_number,
87
+ departure_time: departure_time,
88
+ departure_time_segment: departure_time_segment
89
+ }
90
+ end
91
+
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,42 @@
1
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/base'
2
+ require 'genesis_ruby/utils/money_format'
3
+
4
+ module GenesisRuby
5
+ module Utils
6
+ module Transactions
7
+ module TravelData
8
+ module AirlineItinerary
9
+ # Signify a single AirlineItinerary Tax data
10
+ class Tax < Base
11
+
12
+ attr_reader :fee_type
13
+ attr_accessor :fee_amount, :currency
14
+
15
+ # Fee type
16
+ def fee_type=(value)
17
+ limited_string attribute: __method__, value: value, max: 8
18
+ end
19
+
20
+ # Get Single Tax structure
21
+ def attributes_structure
22
+ {
23
+ fee_amount: parse_fee_amount,
24
+ fee_type: fee_type
25
+ }
26
+ end
27
+
28
+ protected
29
+
30
+ # Minor currency conversion if currency is set
31
+ def parse_fee_amount
32
+ return fee_amount if currency.nil? || fee_amount.nil?
33
+
34
+ MoneyFormat.amount_to_exponent fee_amount, currency
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -16,7 +16,7 @@ module GenesisRuby
16
16
  BRADESCO,
17
17
  CABAL, CASHU, CENCOSUD, DAVIVIENDA,
18
18
  EFECTY, ELO, EPS, EZEEWALLET, FASHIONCHEQUE,
19
- GIROPAY, GOOGLE_PAY,
19
+ GOOGLE_PAY,
20
20
  IDEAL, IDEBIT_PAYIN, INSTA_DEBIT_PAYIN, INTERSOLVE, ITAU,
21
21
  MULTIBANCO, MY_BANK,
22
22
  NARANJA, NATIVA, NEOSURF, NETELLER,
@@ -1,5 +1,5 @@
1
1
  module GenesisRuby
2
2
 
3
- VERSION = '0.1.6'.freeze
3
+ VERSION = '0.1.7'.freeze
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genesis_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - emerchantpay Ltd.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-25 00:00:00.000000000 Z
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -250,6 +250,7 @@ files:
250
250
  - lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/intervals.rb
251
251
  - lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/modes.rb
252
252
  - lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/payment_types.rb
253
+ - lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions.rb
253
254
  - lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_versions.rb
254
255
  - lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb
255
256
  - lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb
@@ -271,6 +272,7 @@ files:
271
272
  - lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/purchase/categories.rb
272
273
  - lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/interfaces.rb
273
274
  - lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/ui_types.rb
275
+ - lib/genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types.rb
274
276
  - lib/genesis_ruby/api/constants/transactions/parameters/wpf/reminder_channels.rb
275
277
  - lib/genesis_ruby/api/mixins/constants/common.rb
276
278
  - lib/genesis_ruby/api/mixins/requests/address_info_attributes.rb
@@ -318,6 +320,11 @@ files:
318
320
  - lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/recurring.rb
319
321
  - lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/sdk.rb
320
322
  - lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/wpf_attributes.rb
323
+ - lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb
324
+ - lib/genesis_ruby/api/mixins/requests/financial/travel_data/car_rental_attributes.rb
325
+ - lib/genesis_ruby/api/mixins/requests/financial/travel_data/hotel_rental_attributes.rb
326
+ - lib/genesis_ruby/api/mixins/requests/financial/travel_data/reference_ticket_attributes.rb
327
+ - lib/genesis_ruby/api/mixins/requests/financial/travel_data/travel_attributes.rb
321
328
  - lib/genesis_ruby/api/mixins/requests/restricted_setter.rb
322
329
  - lib/genesis_ruby/api/mixins/requests/wpf_reminders_attributes.rb
323
330
  - lib/genesis_ruby/api/notification.rb
@@ -383,6 +390,9 @@ files:
383
390
  - lib/genesis_ruby/utils/transactions/references/capturable_types.rb
384
391
  - lib/genesis_ruby/utils/transactions/references/refundable_types.rb
385
392
  - lib/genesis_ruby/utils/transactions/references/voidable_types.rb
393
+ - lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/base.rb
394
+ - lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg.rb
395
+ - lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax.rb
386
396
  - lib/genesis_ruby/utils/transactions/wpf_types.rb
387
397
  - lib/genesis_ruby/version.rb
388
398
  homepage: https://github.com/GenesisGateway/genesis_ruby
@@ -408,7 +418,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
418
  - !ruby/object:Gem::Version
409
419
  version: '0'
410
420
  requirements: []
411
- rubygems_version: 3.1.2
421
+ rubygems_version: 3.4.10
412
422
  signing_key:
413
423
  specification_version: 4
414
424
  summary: Ruby Client for Genesis Payment Processing Gateway