genesis_ruby 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +158 -0
- data/LICENSE +21 -0
- data/README.md +343 -0
- data/Rakefile +12 -0
- data/VERSION +1 -0
- data/genesis_ruby.gemspec +43 -0
- data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +1106 -0
- data/lib/genesis_ruby/api/constants/date_time_formats.rb +45 -0
- data/lib/genesis_ruby/api/constants/endpoints.rb +18 -0
- data/lib/genesis_ruby/api/constants/environments.rb +17 -0
- data/lib/genesis_ruby/api/constants/states/state.rb +43 -0
- data/lib/genesis_ruby/api/constants/states.rb +86 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/business/payment_types.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/sca_exemptions.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths.rb +46 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/password_change_indicators.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/registration_indicators.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/shipping_address_usage_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/suspicious_activity_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/update_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_window_sizes.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/device_types.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/delivery_timeframes.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/pre_order_purchase_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/reorder_item_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/shipping_indicators.rb +46 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/purchase/categories.rb +43 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/interfaces.rb +31 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/ui_types.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions.rb +371 -0
- data/lib/genesis_ruby/api/mixins/constants/common.rb +27 -0
- data/lib/genesis_ruby/api/mixins/requests/address_info_attributes.rb +20 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/billing_info_attributes.rb +33 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/customer_info_attributes.rb +26 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/shipping_info_attributes.rb +33 -0
- data/lib/genesis_ruby/api/mixins/requests/document_attributes.rb +14 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/async_attributes.rb +34 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/base_attributes.rb +16 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes.rb +60 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/business_attributes.rb +56 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/car_plane_and_boat_rentals_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/cruise_lines_attributes.rb +50 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/event_management_attributes.rb +54 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/furniture_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/hotels_and_real_estate_rentals_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/travel_agencies_attributes.rb +88 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/credit_card_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/fx_rate_attributes.rb +18 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_category_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_type_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_attributes.rb +39 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/crypto_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/dynamic_descriptor_attributes.rb +114 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/gaming_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/moto_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/notification_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/payment_attributes.rb +32 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/pending_payment_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/reference_attributes.rb +16 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/risk_attributes.rb +47 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/sca_attributes.rb +37 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/browser.rb +92 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/card_holder_account.rb +183 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/common_attributes.rb +52 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/control.rb +61 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/merchant_risk.rb +114 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/method.rb +44 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/purchase.rb +42 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/recurring.rb +49 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/sdk.rb +107 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/wpf_attributes.rb +61 -0
- data/lib/genesis_ruby/api/mixins/requests/restricted_setter.rb +75 -0
- data/lib/genesis_ruby/api/request.rb +171 -0
- data/lib/genesis_ruby/api/requests/base/financial.rb +44 -0
- data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +27 -0
- data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +60 -0
- data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +76 -0
- data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +59 -0
- data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +75 -0
- data/lib/genesis_ruby/api/requests/wpf/create.rb +142 -0
- data/lib/genesis_ruby/api/response.rb +91 -0
- data/lib/genesis_ruby/builder.rb +42 -0
- data/lib/genesis_ruby/builders/base.rb +18 -0
- data/lib/genesis_ruby/builders/xml.rb +95 -0
- data/lib/genesis_ruby/configuration.rb +177 -0
- data/lib/genesis_ruby/connection.rb +20 -0
- data/lib/genesis_ruby/dependencies.rb +19 -0
- data/lib/genesis_ruby/errors/builder_error.rb +14 -0
- data/lib/genesis_ruby/errors/endpoint_not_set_error.rb +14 -0
- data/lib/genesis_ruby/errors/error.rb +18 -0
- data/lib/genesis_ruby/errors/invalid_argument_error.rb +14 -0
- data/lib/genesis_ruby/errors/network_error.rb +14 -0
- data/lib/genesis_ruby/errors/object_formatter_error.rb +14 -0
- data/lib/genesis_ruby/errors/parameter_error.rb +12 -0
- data/lib/genesis_ruby/errors/parser_error.rb +14 -0
- data/lib/genesis_ruby/errors/response_error.rb +14 -0
- data/lib/genesis_ruby/network/adapter/base_adapter.rb +31 -0
- data/lib/genesis_ruby/network/adapter/net_http_adapter.rb +92 -0
- data/lib/genesis_ruby/network/base_network.rb +83 -0
- data/lib/genesis_ruby/network/net_http.rb +28 -0
- data/lib/genesis_ruby/parser.rb +44 -0
- data/lib/genesis_ruby/parsers/base.rb +25 -0
- data/lib/genesis_ruby/parsers/xml.rb +120 -0
- data/lib/genesis_ruby/utils/common.rb +108 -0
- data/lib/genesis_ruby/utils/formatters/base.rb +40 -0
- data/lib/genesis_ruby/utils/formatters/response/definitions.rb +21 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/amount.rb +34 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +29 -0
- data/lib/genesis_ruby/utils/formatters/response/loader.rb +42 -0
- data/lib/genesis_ruby/utils/money/base/strategy.rb +38 -0
- data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +22 -0
- data/lib/genesis_ruby/utils/money/conversions/exponent_to_amount.rb +22 -0
- data/lib/genesis_ruby/utils/money/format.rb +34 -0
- data/lib/genesis_ruby/utils/money_format.rb +39 -0
- data/lib/genesis_ruby/utils/object_formatter.rb +67 -0
- data/lib/genesis_ruby/utils/options/api_config.rb +36 -0
- data/lib/genesis_ruby/utils/options/base.rb +35 -0
- data/lib/genesis_ruby/utils/options/network_adapter_config.rb +41 -0
- data/lib/genesis_ruby/utils/transactions/financial_types.rb +50 -0
- data/lib/genesis_ruby/utils/transactions/references/capturable_types.rb +52 -0
- data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +70 -0
- data/lib/genesis_ruby/utils/transactions/references/voidable_types.rb +49 -0
- data/lib/genesis_ruby/utils/transactions/wpf_types.rb +43 -0
- data/lib/genesis_ruby/version.rb +5 -0
- data/lib/genesis_ruby.rb +57 -0
- metadata +372 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'genesis_ruby/errors/parameter_error'
|
2
|
+
|
3
|
+
module GenesisRuby
|
4
|
+
module Api
|
5
|
+
module Mixins
|
6
|
+
module Requests
|
7
|
+
module CustomerAddress
|
8
|
+
# Mixin CustomerInfoAttributes
|
9
|
+
module CustomerInfoAttributes
|
10
|
+
|
11
|
+
attr_reader :customer_email
|
12
|
+
attr_accessor :customer_phone
|
13
|
+
|
14
|
+
# Email of the customer
|
15
|
+
def customer_email=(value)
|
16
|
+
raise GenesisRuby::ParameterError unless value =~ /\A.+@.+\..+\Z/
|
17
|
+
|
18
|
+
@customer_email = value
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module CustomerAddress
|
6
|
+
# Mixin shippingInfoAttributes
|
7
|
+
module ShippingInfoAttributes
|
8
|
+
|
9
|
+
attr_accessor :shipping_first_name, :shipping_last_name, :shipping_address1, :shipping_address2,
|
10
|
+
:shipping_zip_code, :shipping_city, :shipping_state, :shipping_country
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
# Build Hash with all parameters
|
15
|
+
def shipping_address_parameters_structure
|
16
|
+
{
|
17
|
+
first_name: shipping_first_name,
|
18
|
+
last_name: shipping_last_name,
|
19
|
+
address1: shipping_address1,
|
20
|
+
address2: shipping_address2,
|
21
|
+
zip_code: shipping_zip_code,
|
22
|
+
city: shipping_city,
|
23
|
+
state: shipping_state,
|
24
|
+
country: shipping_country
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Mixin Async Attributes
|
7
|
+
module AsyncAttributes
|
8
|
+
|
9
|
+
attr_reader :return_success_url, :return_failure_url
|
10
|
+
|
11
|
+
# Return Success URL setter
|
12
|
+
def return_success_url=(value)
|
13
|
+
unless GenesisRuby::Utils::Common.valid_url?(value)
|
14
|
+
raise ParameterError, "Invalid URL given for #{__method__}"
|
15
|
+
end
|
16
|
+
|
17
|
+
@return_success_url = value
|
18
|
+
end
|
19
|
+
|
20
|
+
# Return Failure URL setter
|
21
|
+
def return_failure_url=(value)
|
22
|
+
unless GenesisRuby::Utils::Common.valid_url?(value)
|
23
|
+
raise ParameterError, "Invalid URL given for #{__method__}"
|
24
|
+
end
|
25
|
+
|
26
|
+
@return_failure_url = value
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Base Financial Transaction Requests attributes
|
7
|
+
module BaseAttributes
|
8
|
+
|
9
|
+
attr_accessor :transaction_id, :usage, :remote_ip
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Airlines Air Carriers Attributes
|
8
|
+
module AirlinesAirCarriersAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_airline_code, :business_airline_flight_number, :business_flight_ticket_number,
|
11
|
+
:business_flight_origin_city, :business_flight_destination_city,
|
12
|
+
:business_airline_tour_operator_name
|
13
|
+
|
14
|
+
# The date when the flight arrives
|
15
|
+
def business_flight_arrival_date
|
16
|
+
@business_flight_arrival_date&.strftime(
|
17
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
# The date when the flight arrives
|
22
|
+
def business_flight_arrival_date=(value)
|
23
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
24
|
+
end
|
25
|
+
|
26
|
+
# The date when the flight departs
|
27
|
+
def business_flight_departure_date
|
28
|
+
@business_flight_departure_date&.strftime(
|
29
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# The date when the flight departs
|
34
|
+
def business_flight_departure_date=(value)
|
35
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
# Airlines Air Carriers Attributes Structure
|
41
|
+
def airlines_air_carriers_attributes_structure
|
42
|
+
{
|
43
|
+
flight_arrival_date: business_flight_arrival_date,
|
44
|
+
flight_departure_date: business_flight_departure_date,
|
45
|
+
airline_code: business_airline_code,
|
46
|
+
airline_flight_number: business_airline_flight_number,
|
47
|
+
flight_ticket_number: business_flight_ticket_number,
|
48
|
+
flight_origin_city: business_flight_origin_city,
|
49
|
+
flight_destination_city: business_flight_destination_city,
|
50
|
+
airline_tour_operator_name: business_airline_tour_operator_name
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes'
|
2
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/car_plane_and_boat_rentals_attributes'
|
3
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/cruise_lines_attributes'
|
4
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/event_management_attributes'
|
5
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/furniture_attributes'
|
6
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/hotels_and_real_estate_rentals_attributes'
|
7
|
+
require 'genesis_ruby/api/mixins/requests/financial/business/travel_agencies_attributes'
|
8
|
+
require 'genesis_ruby/api/constants/transactions/parameters/business/payment_types'
|
9
|
+
|
10
|
+
module GenesisRuby
|
11
|
+
module Api
|
12
|
+
module Mixins
|
13
|
+
module Requests
|
14
|
+
module Financial
|
15
|
+
module Business
|
16
|
+
# Mixin Business Attributes
|
17
|
+
module BusinessAttributes
|
18
|
+
|
19
|
+
include AirlinesAirCarriersAttributes
|
20
|
+
include CarPlaneAndBoatRentalsAttributes
|
21
|
+
include CruiseLinesAttributes
|
22
|
+
include EventManagementAttributes
|
23
|
+
include FurnitureAttributes
|
24
|
+
include HotelsAndRealEstateRentalsAttributes
|
25
|
+
include TravelAgenciesAttributes
|
26
|
+
|
27
|
+
attr_reader :business_payment_type
|
28
|
+
|
29
|
+
# The type of payment - can be either deposit or balance
|
30
|
+
def business_payment_type=(value)
|
31
|
+
allowed_options attribute: __method__,
|
32
|
+
allowed: GenesisRuby::Api::Constants::Transactions::Parameters::Business::
|
33
|
+
PaymentTypes.all,
|
34
|
+
value: value,
|
35
|
+
allow_empty: true
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
# Business Attributes Structure
|
41
|
+
def business_attributes_structure
|
42
|
+
{
|
43
|
+
payment_type: business_payment_type
|
44
|
+
}.merge airlines_air_carriers_attributes_structure, car_plane_and_boat_rentals_attributes_structure,
|
45
|
+
cruise_lines_attributes_structure, event_management_attributes_structure,
|
46
|
+
furniture_attributes_structure, hotels_and_real_estate_rentals_attributes_structure,
|
47
|
+
travel_agencies_attributes_structure
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Car Plane and Boat Rentals Attributes
|
8
|
+
module CarPlaneAndBoatRentalsAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_supplier_name
|
11
|
+
|
12
|
+
# The date when customer takes the vehicle
|
13
|
+
def business_vehicle_pick_up_date
|
14
|
+
@business_vehicle_pick_up_date&.strftime(
|
15
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
# The date when customer takes the vehicle
|
20
|
+
def business_vehicle_pick_up_date=(value)
|
21
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
# The date when the customer returns the vehicle back
|
25
|
+
def business_vehicle_return_date
|
26
|
+
@business_vehicle_return_date&.strftime(
|
27
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# The date when the customer returns the vehicle back
|
32
|
+
def business_vehicle_return_date=(value)
|
33
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
# Car Plane and Boat Rentals Attributes Structure
|
39
|
+
def car_plane_and_boat_rentals_attributes_structure
|
40
|
+
{
|
41
|
+
vehicle_pick_up_date: business_vehicle_pick_up_date,
|
42
|
+
vehicle_return_date: business_vehicle_return_date,
|
43
|
+
supplier_name: business_supplier_name
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Cruise Lines Attributes
|
8
|
+
module CruiseLinesAttributes
|
9
|
+
|
10
|
+
# The date when cruise begins
|
11
|
+
def business_cruise_start_date
|
12
|
+
@business_cruise_start_date&.strftime(
|
13
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
# The date when cruise begins
|
18
|
+
def business_cruise_start_date=(value)
|
19
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
20
|
+
end
|
21
|
+
|
22
|
+
# The date when cruise ends
|
23
|
+
def business_cruise_end_date
|
24
|
+
@business_cruise_end_date&.strftime(
|
25
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
# The date when cruise ends
|
30
|
+
def business_cruise_end_date=(value)
|
31
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
32
|
+
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
|
36
|
+
# Cruise Lines Attributes Structure
|
37
|
+
def cruise_lines_attributes_structure
|
38
|
+
{
|
39
|
+
cruise_start_date: business_cruise_start_date,
|
40
|
+
cruise_end_date: business_cruise_end_date
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Event Management Attributes
|
8
|
+
module EventManagementAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_event_organizer_id, :business_event_id
|
11
|
+
|
12
|
+
# The date when event starts
|
13
|
+
def business_event_start_date
|
14
|
+
@business_event_start_date&.strftime(
|
15
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
# The date when event starts
|
20
|
+
def business_event_start_date=(value)
|
21
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
# The date when event ends
|
25
|
+
def business_event_end_date
|
26
|
+
@business_event_end_date&.strftime(
|
27
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# The date when event ends
|
32
|
+
def business_event_end_date=(value)
|
33
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
# Event Management Attributes Structure
|
39
|
+
def event_management_attributes_structure
|
40
|
+
{
|
41
|
+
event_start_date: business_event_start_date,
|
42
|
+
event_end_date: business_event_end_date,
|
43
|
+
event_organizer_id: business_event_organizer_id,
|
44
|
+
event_id: business_event_id
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Furniture Attributes
|
8
|
+
module FurnitureAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_name_of_the_supplier
|
11
|
+
|
12
|
+
# The date when order was placed
|
13
|
+
def business_date_of_order
|
14
|
+
@business_date_of_order&.strftime(
|
15
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
# The date when order was placed
|
20
|
+
def business_date_of_order=(value)
|
21
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
# Date of the expected delivery
|
25
|
+
def business_delivery_date
|
26
|
+
@business_delivery_date&.strftime(
|
27
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Date of the expected delivery
|
32
|
+
def business_delivery_date=(value)
|
33
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
# Furniture Attributes Structure
|
39
|
+
def furniture_attributes_structure
|
40
|
+
{
|
41
|
+
date_of_order: business_date_of_order,
|
42
|
+
delivery_date: business_delivery_date,
|
43
|
+
name_of_the_supplier: business_name_of_the_supplier
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Hotels and Real Estate Rentals Attributes
|
8
|
+
module HotelsAndRealEstateRentalsAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_travel_agency_name
|
11
|
+
|
12
|
+
# The data when the customer check-in
|
13
|
+
def business_check_in_date
|
14
|
+
@business_check_in_date&.strftime(
|
15
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
# The data when the customer check-in
|
20
|
+
def business_check_in_date=(value)
|
21
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
# The data when the customer check-out
|
25
|
+
def business_check_out_date
|
26
|
+
@business_check_out_date&.strftime(
|
27
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# The data when the customer check-out
|
32
|
+
def business_check_out_date=(value)
|
33
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
# Hotels and Real Estate Rentals Attributes Structure
|
39
|
+
def hotels_and_real_estate_rentals_attributes_structure
|
40
|
+
{
|
41
|
+
check_in_date: business_check_in_date,
|
42
|
+
check_out_date: business_check_out_date,
|
43
|
+
travel_agency_name: business_travel_agency_name
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Business
|
7
|
+
# Mixin Travel Agencies Attributes
|
8
|
+
module TravelAgenciesAttributes
|
9
|
+
|
10
|
+
attr_accessor :business_carrier_code, :business_flight_number, :business_ticket_number,
|
11
|
+
:business_origin_city, :business_destination_city, :business_travel_agency,
|
12
|
+
:business_contractor_name, :business_atol_certificate
|
13
|
+
|
14
|
+
# The date of arrival
|
15
|
+
def business_arrival_date
|
16
|
+
@business_arrival_date&.strftime(
|
17
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
# The date of arrival
|
22
|
+
def business_arrival_date=(value)
|
23
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
24
|
+
end
|
25
|
+
|
26
|
+
# The date of departure
|
27
|
+
def business_departure_date
|
28
|
+
@business_departure_date&.strftime(
|
29
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# The date of departure
|
34
|
+
def business_departure_date=(value)
|
35
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
36
|
+
end
|
37
|
+
|
38
|
+
# Pick-up date
|
39
|
+
def business_pick_up_date
|
40
|
+
@business_pick_up_date&.strftime(
|
41
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Pick-up date
|
46
|
+
def business_pick_up_date=(value)
|
47
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
48
|
+
end
|
49
|
+
|
50
|
+
# Return date
|
51
|
+
def business_return_date
|
52
|
+
@business_return_date&.strftime(
|
53
|
+
GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Return date
|
58
|
+
def business_return_date=(value)
|
59
|
+
parse_date attribute: __method__, value: value, allow_empty: true
|
60
|
+
end
|
61
|
+
|
62
|
+
protected
|
63
|
+
|
64
|
+
# Travel Agencies Attributes Structure
|
65
|
+
def travel_agencies_attributes_structure # rubocop:disable Metrics/MethodLength
|
66
|
+
{
|
67
|
+
arrival_date: business_arrival_date,
|
68
|
+
departure_date: business_departure_date,
|
69
|
+
carrier_code: business_carrier_code,
|
70
|
+
flight_number: business_flight_number,
|
71
|
+
ticket_number: business_ticket_number,
|
72
|
+
origin_city: business_origin_city,
|
73
|
+
destination_city: business_destination_city,
|
74
|
+
travel_agency: business_travel_agency,
|
75
|
+
contractor_name: business_contractor_name,
|
76
|
+
atol_certificate: business_atol_certificate,
|
77
|
+
pick_up_date: business_pick_up_date,
|
78
|
+
return_date: business_return_date
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Cards
|
7
|
+
# Credit Card Attributes
|
8
|
+
module CreditCardAttributes
|
9
|
+
|
10
|
+
attr_accessor :card_holder, :card_number, :cvv, :expiration_month, :expiration_year
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
# Credit Card Attributes Structure
|
15
|
+
def credit_card_attributes_structure
|
16
|
+
{
|
17
|
+
card_holder: card_holder,
|
18
|
+
card_number: card_number,
|
19
|
+
expiration_month: expiration_month,
|
20
|
+
expiration_year: expiration_year,
|
21
|
+
cvv: cvv
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_category_attributes.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'genesis_ruby/api/constants/transactions/parameters/recurring/categories'
|
2
|
+
|
3
|
+
module GenesisRuby
|
4
|
+
module Api
|
5
|
+
module Mixins
|
6
|
+
module Requests
|
7
|
+
module Financial
|
8
|
+
module Cards
|
9
|
+
module Recurring
|
10
|
+
# Recurring Category Attributes
|
11
|
+
module RecurringCategoryAttributes
|
12
|
+
|
13
|
+
attr_reader :recurring_category
|
14
|
+
|
15
|
+
# Specifies whether the recurring transaction is a subscription or standing order
|
16
|
+
def recurring_category=(value)
|
17
|
+
allowed_options attribute: __method__,
|
18
|
+
allowed: GenesisRuby::Api::Constants::Transactions::Parameters::Recurring::
|
19
|
+
Categories.all,
|
20
|
+
value: value,
|
21
|
+
allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|