paypal-server-sdk 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +35 -0
- data/README.md +112 -0
- data/lib/paypal_server_sdk/api_helper.rb +10 -0
- data/lib/paypal_server_sdk/client.rb +85 -0
- data/lib/paypal_server_sdk/configuration.rb +109 -0
- data/lib/paypal_server_sdk/controllers/base_controller.rb +71 -0
- data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +42 -0
- data/lib/paypal_server_sdk/controllers/orders_controller.rb +517 -0
- data/lib/paypal_server_sdk/controllers/payments_controller.rb +404 -0
- data/lib/paypal_server_sdk/controllers/vault_controller.rb +224 -0
- data/lib/paypal_server_sdk/exceptions/api_exception.rb +10 -0
- data/lib/paypal_server_sdk/exceptions/error_exception.rb +71 -0
- data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +48 -0
- data/lib/paypal_server_sdk/http/api_response.rb +21 -0
- data/lib/paypal_server_sdk/http/auth/o_auth2.rb +136 -0
- data/lib/paypal_server_sdk/http/http_call_back.rb +10 -0
- data/lib/paypal_server_sdk/http/http_method_enum.rb +10 -0
- data/lib/paypal_server_sdk/http/http_request.rb +10 -0
- data/lib/paypal_server_sdk/http/http_response.rb +10 -0
- data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +114 -0
- data/lib/paypal_server_sdk/logging/sdk_logger.rb +17 -0
- data/lib/paypal_server_sdk/models/activity_timestamps.rb +68 -0
- data/lib/paypal_server_sdk/models/address.rb +116 -0
- data/lib/paypal_server_sdk/models/address_details.rb +160 -0
- data/lib/paypal_server_sdk/models/amount_breakdown.rb +115 -0
- data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +80 -0
- data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +60 -0
- data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +50 -0
- data/lib/paypal_server_sdk/models/apple_pay_card.rb +94 -0
- data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +167 -0
- data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +95 -0
- data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +83 -0
- data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +24 -0
- data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +114 -0
- data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +51 -0
- data/lib/paypal_server_sdk/models/apple_pay_request.rb +137 -0
- data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +113 -0
- data/lib/paypal_server_sdk/models/assurance_details.rb +68 -0
- data/lib/paypal_server_sdk/models/authentication_response.rb +61 -0
- data/lib/paypal_server_sdk/models/authorization.rb +192 -0
- data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +23 -0
- data/lib/paypal_server_sdk/models/authorization_status.rb +35 -0
- data/lib/paypal_server_sdk/models/authorization_status_details.rb +50 -0
- data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +60 -0
- data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +205 -0
- data/lib/paypal_server_sdk/models/avs_code.rb +90 -0
- data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +95 -0
- data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/base_model.rb +62 -0
- data/lib/paypal_server_sdk/models/bin_details.rb +88 -0
- data/lib/paypal_server_sdk/models/blik_experience_context.rb +122 -0
- data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +48 -0
- data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +52 -0
- data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +82 -0
- data/lib/paypal_server_sdk/models/blik_payment_object.rb +86 -0
- data/lib/paypal_server_sdk/models/blik_payment_request.rb +105 -0
- data/lib/paypal_server_sdk/models/capture.rb +228 -0
- data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +55 -0
- data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +89 -0
- data/lib/paypal_server_sdk/models/capture_request.rb +108 -0
- data/lib/paypal_server_sdk/models/capture_status.rb +35 -0
- data/lib/paypal_server_sdk/models/capture_status_details.rb +50 -0
- data/lib/paypal_server_sdk/models/capture_status_with_details.rb +60 -0
- data/lib/paypal_server_sdk/models/captured_payment.rb +248 -0
- data/lib/paypal_server_sdk/models/card_attributes.rb +70 -0
- data/lib/paypal_server_sdk/models/card_attributes_response.rb +50 -0
- data/lib/paypal_server_sdk/models/card_authentication_response.rb +51 -0
- data/lib/paypal_server_sdk/models/card_brand.rb +93 -0
- data/lib/paypal_server_sdk/models/card_customer_information.rb +85 -0
- data/lib/paypal_server_sdk/models/card_experience_context.rb +59 -0
- data/lib/paypal_server_sdk/models/card_from_request.rb +60 -0
- data/lib/paypal_server_sdk/models/card_payment_token.rb +166 -0
- data/lib/paypal_server_sdk/models/card_request.rb +176 -0
- data/lib/paypal_server_sdk/models/card_response.rb +139 -0
- data/lib/paypal_server_sdk/models/card_response_entity.rb +156 -0
- data/lib/paypal_server_sdk/models/card_stored_credential.rb +95 -0
- data/lib/paypal_server_sdk/models/card_supplementary_data.rb +71 -0
- data/lib/paypal_server_sdk/models/card_type.rb +32 -0
- data/lib/paypal_server_sdk/models/card_vault_response.rb +86 -0
- data/lib/paypal_server_sdk/models/card_verification.rb +51 -0
- data/lib/paypal_server_sdk/models/card_verification_details.rb +111 -0
- data/lib/paypal_server_sdk/models/card_verification_method.rb +29 -0
- data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +62 -0
- data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +24 -0
- data/lib/paypal_server_sdk/models/cobranded_card.rb +70 -0
- data/lib/paypal_server_sdk/models/confirm_order_request.rb +74 -0
- data/lib/paypal_server_sdk/models/customer_information.rb +72 -0
- data/lib/paypal_server_sdk/models/customer_request.rb +62 -0
- data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +105 -0
- data/lib/paypal_server_sdk/models/cvv_code.rb +60 -0
- data/lib/paypal_server_sdk/models/disbursement_mode.rb +23 -0
- data/lib/paypal_server_sdk/models/dispute_category.rb +23 -0
- data/lib/paypal_server_sdk/models/eci_flag.rb +39 -0
- data/lib/paypal_server_sdk/models/enrollment_status.rb +29 -0
- data/lib/paypal_server_sdk/models/eps_payment_object.rb +74 -0
- data/lib/paypal_server_sdk/models/eps_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/error_details.rb +110 -0
- data/lib/paypal_server_sdk/models/exchange_rate.rb +75 -0
- data/lib/paypal_server_sdk/models/experience_context.rb +98 -0
- data/lib/paypal_server_sdk/models/fullfillment_type.rb +31 -0
- data/lib/paypal_server_sdk/models/giropay_payment_object.rb +74 -0
- data/lib/paypal_server_sdk/models/giropay_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +23 -0
- data/lib/paypal_server_sdk/models/google_pay_card_attributes.rb +51 -0
- data/lib/paypal_server_sdk/models/google_pay_card_response.rb +104 -0
- data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +105 -0
- data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +20 -0
- data/lib/paypal_server_sdk/models/google_pay_request.rb +118 -0
- data/lib/paypal_server_sdk/models/google_pay_request_card.rb +84 -0
- data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +85 -0
- data/lib/paypal_server_sdk/models/ideal_payment_object.rb +85 -0
- data/lib/paypal_server_sdk/models/ideal_payment_request.rb +83 -0
- data/lib/paypal_server_sdk/models/item.rb +134 -0
- data/lib/paypal_server_sdk/models/item_category.rb +26 -0
- data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +66 -0
- data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +120 -0
- data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +26 -0
- data/lib/paypal_server_sdk/models/line_item.rb +177 -0
- data/lib/paypal_server_sdk/models/link_description.rb +75 -0
- data/lib/paypal_server_sdk/models/link_http_method.rb +41 -0
- data/lib/paypal_server_sdk/models/money.rb +62 -0
- data/lib/paypal_server_sdk/models/my_bank_payment_object.rb +85 -0
- data/lib/paypal_server_sdk/models/my_bank_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/name.rb +61 -0
- data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +73 -0
- data/lib/paypal_server_sdk/models/network_token.rb +95 -0
- data/lib/paypal_server_sdk/models/network_transaction_reference.rb +90 -0
- data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +88 -0
- data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +45 -0
- data/lib/paypal_server_sdk/models/o_auth_token.rb +106 -0
- data/lib/paypal_server_sdk/models/order.rb +178 -0
- data/lib/paypal_server_sdk/models/order_application_context.rb +193 -0
- data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +32 -0
- data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +34 -0
- data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +29 -0
- data/lib/paypal_server_sdk/models/order_authorize_request.rb +51 -0
- data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +104 -0
- data/lib/paypal_server_sdk/models/order_authorize_response.rb +171 -0
- data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +88 -0
- data/lib/paypal_server_sdk/models/order_capture_request.rb +51 -0
- data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +104 -0
- data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +109 -0
- data/lib/paypal_server_sdk/models/order_request.rb +103 -0
- data/lib/paypal_server_sdk/models/order_status.rb +35 -0
- data/lib/paypal_server_sdk/models/order_tracker_item.rb +99 -0
- data/lib/paypal_server_sdk/models/order_tracker_request.rb +116 -0
- data/lib/paypal_server_sdk/models/order_tracker_response.rb +122 -0
- data/lib/paypal_server_sdk/models/order_tracker_status.rb +23 -0
- data/lib/paypal_server_sdk/models/p24_payment_object.rb +108 -0
- data/lib/paypal_server_sdk/models/p24_payment_request.rb +85 -0
- data/lib/paypal_server_sdk/models/pa_res_status.rb +42 -0
- data/lib/paypal_server_sdk/models/patch.rb +83 -0
- data/lib/paypal_server_sdk/models/patch_op.rb +35 -0
- data/lib/paypal_server_sdk/models/pay_pal_experience_landing_page.rb +26 -0
- data/lib/paypal_server_sdk/models/pay_pal_experience_user_action.rb +24 -0
- data/lib/paypal_server_sdk/models/pay_pal_payment_token.rb +180 -0
- data/lib/paypal_server_sdk/models/pay_pal_payment_token_customer_type.rb +25 -0
- data/lib/paypal_server_sdk/models/pay_pal_payment_token_usage_pattern.rb +35 -0
- data/lib/paypal_server_sdk/models/pay_pal_payment_token_usage_type.rb +23 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet.rb +158 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_account_verification_status.rb +24 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_attributes.rb +59 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_attributes_response.rb +70 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_customer.rb +85 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_customer_request.rb +85 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_experience_context.rb +140 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_response.rb +166 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_vault_instruction.rb +115 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_vault_response.rb +86 -0
- data/lib/paypal_server_sdk/models/pay_pal_wallet_vault_status.rb +26 -0
- data/lib/paypal_server_sdk/models/payee.rb +65 -0
- data/lib/paypal_server_sdk/models/payee_base.rb +64 -0
- data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +23 -0
- data/lib/paypal_server_sdk/models/payer.rb +120 -0
- data/lib/paypal_server_sdk/models/payer_base.rb +64 -0
- data/lib/paypal_server_sdk/models/payment_advice_code.rb +30 -0
- data/lib/paypal_server_sdk/models/payment_authorization.rb +212 -0
- data/lib/paypal_server_sdk/models/payment_collection.rb +99 -0
- data/lib/paypal_server_sdk/models/payment_initiator.rb +23 -0
- data/lib/paypal_server_sdk/models/payment_instruction.rb +105 -0
- data/lib/paypal_server_sdk/models/payment_method_preference.rb +72 -0
- data/lib/paypal_server_sdk/models/payment_source.rb +187 -0
- data/lib/paypal_server_sdk/models/payment_source_response.rb +171 -0
- data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +50 -0
- data/lib/paypal_server_sdk/models/payment_token_request.rb +60 -0
- data/lib/paypal_server_sdk/models/payment_token_request_card.rb +125 -0
- data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +59 -0
- data/lib/paypal_server_sdk/models/payment_token_response.rb +87 -0
- data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +87 -0
- data/lib/paypal_server_sdk/models/phone.rb +77 -0
- data/lib/paypal_server_sdk/models/phone_number.rb +54 -0
- data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +66 -0
- data/lib/paypal_server_sdk/models/phone_type.rb +32 -0
- data/lib/paypal_server_sdk/models/phone_with_type.rb +59 -0
- data/lib/paypal_server_sdk/models/platform_fee.rb +63 -0
- data/lib/paypal_server_sdk/models/processing_instruction.rb +23 -0
- data/lib/paypal_server_sdk/models/processor_response.rb +83 -0
- data/lib/paypal_server_sdk/models/processor_response_code.rb +479 -0
- data/lib/paypal_server_sdk/models/purchase_unit.rb +227 -0
- data/lib/paypal_server_sdk/models/purchase_unit_request.rb +193 -0
- data/lib/paypal_server_sdk/models/reauthorize_request.rb +62 -0
- data/lib/paypal_server_sdk/models/refund.rb +195 -0
- data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +20 -0
- data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +68 -0
- data/lib/paypal_server_sdk/models/refund_platform_fee.rb +52 -0
- data/lib/paypal_server_sdk/models/refund_request.rb +100 -0
- data/lib/paypal_server_sdk/models/refund_status.rb +29 -0
- data/lib/paypal_server_sdk/models/refund_status_details.rb +50 -0
- data/lib/paypal_server_sdk/models/refund_status_with_details.rb +60 -0
- data/lib/paypal_server_sdk/models/related_identifiers.rb +69 -0
- data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +156 -0
- data/lib/paypal_server_sdk/models/seller_protection.rb +65 -0
- data/lib/paypal_server_sdk/models/seller_protection_status.rb +29 -0
- data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +129 -0
- data/lib/paypal_server_sdk/models/setup_token_card_experience_context.rb +103 -0
- data/lib/paypal_server_sdk/models/setup_token_request.rb +60 -0
- data/lib/paypal_server_sdk/models/setup_token_request_card.rb +141 -0
- data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +77 -0
- data/lib/paypal_server_sdk/models/setup_token_response.rb +106 -0
- data/lib/paypal_server_sdk/models/setup_token_response_card.rb +156 -0
- data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +68 -0
- data/lib/paypal_server_sdk/models/shipment_carrier.rb +3852 -0
- data/lib/paypal_server_sdk/models/shipping_details.rb +106 -0
- data/lib/paypal_server_sdk/models/shipping_name.rb +50 -0
- data/lib/paypal_server_sdk/models/shipping_option.rb +94 -0
- data/lib/paypal_server_sdk/models/shipping_preference.rb +26 -0
- data/lib/paypal_server_sdk/models/shipping_type.rb +29 -0
- data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +124 -0
- data/lib/paypal_server_sdk/models/sofort_payment_object.rb +85 -0
- data/lib/paypal_server_sdk/models/sofort_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +36 -0
- data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +20 -0
- data/lib/paypal_server_sdk/models/stored_payment_source.rb +95 -0
- data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +26 -0
- data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +27 -0
- data/lib/paypal_server_sdk/models/supplementary_data.rb +58 -0
- data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +63 -0
- data/lib/paypal_server_sdk/models/tax_id_type.rb +23 -0
- data/lib/paypal_server_sdk/models/tax_info.rb +57 -0
- data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +62 -0
- data/lib/paypal_server_sdk/models/token.rb +56 -0
- data/lib/paypal_server_sdk/models/token_request_type.rb +23 -0
- data/lib/paypal_server_sdk/models/token_type.rb +20 -0
- data/lib/paypal_server_sdk/models/trustly_payment_object.rb +85 -0
- data/lib/paypal_server_sdk/models/trustly_payment_request.rb +73 -0
- data/lib/paypal_server_sdk/models/universal_product_code.rb +56 -0
- data/lib/paypal_server_sdk/models/upc_type.rb +38 -0
- data/lib/paypal_server_sdk/models/vault_customer.rb +50 -0
- data/lib/paypal_server_sdk/models/vault_experience_context.rb +112 -0
- data/lib/paypal_server_sdk/models/vault_instruction.rb +50 -0
- data/lib/paypal_server_sdk/models/vault_instruction_base.rb +52 -0
- data/lib/paypal_server_sdk/models/vault_pay_pal_wallet_request.rb +115 -0
- data/lib/paypal_server_sdk/models/vault_response.rb +86 -0
- data/lib/paypal_server_sdk/models/vault_status.rb +26 -0
- data/lib/paypal_server_sdk/models/vault_token_request.rb +56 -0
- data/lib/paypal_server_sdk/models/vault_venmo_experience_context.rb +73 -0
- data/lib/paypal_server_sdk/models/vault_venmo_request.rb +115 -0
- data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +106 -0
- data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +75 -0
- data/lib/paypal_server_sdk/models/venmo_payment_token.rb +169 -0
- data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +25 -0
- data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +35 -0
- data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +23 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +60 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +50 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +63 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +65 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +89 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +120 -0
- data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +114 -0
- data/lib/paypal_server_sdk/utilities/date_time_helper.rb +11 -0
- data/lib/paypal_server_sdk/utilities/file_wrapper.rb +16 -0
- data/lib/paypal_server_sdk.rb +306 -0
- metadata +357 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# The error details.
|
8
|
+
class ErrorException < APIException
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# The human-readable, unique name of the error.
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :name
|
15
|
+
|
16
|
+
# The message that describes the error.
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :message
|
19
|
+
|
20
|
+
# The PayPal internal ID. Used for correlation purposes.
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :debug_id
|
23
|
+
|
24
|
+
# An array of additional details about the error.
|
25
|
+
# @return [Array[ErrorDetails]]
|
26
|
+
attr_accessor :details
|
27
|
+
|
28
|
+
# An array of request-related [HATEOAS
|
29
|
+
# links](/api/rest/responses/#hateoas-links).
|
30
|
+
# @return [Array[LinkDescription]]
|
31
|
+
attr_accessor :links
|
32
|
+
|
33
|
+
# The constructor.
|
34
|
+
# @param [String] The reason for raising an exception.
|
35
|
+
# @param [HttpResponse] The HttpReponse of the API call.
|
36
|
+
def initialize(reason, response)
|
37
|
+
super(reason, response)
|
38
|
+
hash = APIHelper.json_deserialize(@response.raw_body)
|
39
|
+
unbox(hash)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Populates this object by extracting properties from a hash.
|
43
|
+
# @param [Hash] The deserialized response sent by the server in the
|
44
|
+
# response body.
|
45
|
+
def unbox(hash)
|
46
|
+
@name = hash.key?('name') ? hash['name'] : nil
|
47
|
+
@message = hash.key?('message') ? hash['message'] : nil
|
48
|
+
@debug_id = hash.key?('debug_id') ? hash['debug_id'] : nil
|
49
|
+
# Parameter is an array, so we need to iterate through it
|
50
|
+
@details = nil
|
51
|
+
unless hash['details'].nil?
|
52
|
+
@details = []
|
53
|
+
hash['details'].each do |structure|
|
54
|
+
@details << (ErrorDetails.from_hash(structure) if structure)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
@details = SKIP unless hash.key?('details')
|
59
|
+
# Parameter is an array, so we need to iterate through it
|
60
|
+
@links = nil
|
61
|
+
unless hash['links'].nil?
|
62
|
+
@links = []
|
63
|
+
hash['links'].each do |structure|
|
64
|
+
@links << (LinkDescription.from_hash(structure) if structure)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
@links = SKIP unless hash.key?('links')
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# OAuth 2 Authorization endpoint exception.
|
8
|
+
class OAuthProviderException < APIException
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Gets or sets error code.
|
13
|
+
# @return [OAuthProviderError]
|
14
|
+
attr_accessor :error
|
15
|
+
|
16
|
+
# Gets or sets human-readable text providing additional information on
|
17
|
+
# error.
|
18
|
+
# Used to assist the client developer in understanding the error that
|
19
|
+
# occurred.
|
20
|
+
# @return [String]
|
21
|
+
attr_accessor :error_description
|
22
|
+
|
23
|
+
# Gets or sets a URI identifying a human-readable web page with information
|
24
|
+
# about the error, used to provide the client developer with additional
|
25
|
+
# information about the error.
|
26
|
+
# @return [String]
|
27
|
+
attr_accessor :error_uri
|
28
|
+
|
29
|
+
# The constructor.
|
30
|
+
# @param [String] The reason for raising an exception.
|
31
|
+
# @param [HttpResponse] The HttpReponse of the API call.
|
32
|
+
def initialize(reason, response)
|
33
|
+
super(reason, response)
|
34
|
+
hash = APIHelper.json_deserialize(@response.raw_body)
|
35
|
+
unbox(hash)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Populates this object by extracting properties from a hash.
|
39
|
+
# @param [Hash] The deserialized response sent by the server in the
|
40
|
+
# response body.
|
41
|
+
def unbox(hash)
|
42
|
+
@error = hash.key?('error') ? hash['error'] : nil
|
43
|
+
@error_description =
|
44
|
+
hash.key?('error_description') ? hash['error_description'] : SKIP
|
45
|
+
@error_uri = hash.key?('error_uri') ? hash['error_uri'] : SKIP
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# Http response received.
|
8
|
+
class ApiResponse < CoreLibrary::ApiResponse
|
9
|
+
|
10
|
+
|
11
|
+
# The constructor
|
12
|
+
# @param [HttpResponse] http_response The original, raw response from the api.
|
13
|
+
# @param [Object] data The data field specified for the response.
|
14
|
+
# @param [Array<String>] errors Any errors returned by the server.
|
15
|
+
def initialize(http_response,
|
16
|
+
data: nil,
|
17
|
+
errors: nil)
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# Utility class for OAuth 2 authorization and token management.
|
8
|
+
class OAuth2 < CoreLibrary::HeaderAuth
|
9
|
+
include CoreLibrary
|
10
|
+
# Display error message on occurrence of authentication failure.
|
11
|
+
# @returns [String] The oAuth error message.
|
12
|
+
def error_message
|
13
|
+
'ClientCredentialsAuth: OAuthToken is undefined or expired.'
|
14
|
+
end
|
15
|
+
|
16
|
+
# Initialization constructor.
|
17
|
+
def initialize(client_credentials_auth_credentials, config)
|
18
|
+
@_o_auth_client_id = client_credentials_auth_credentials.o_auth_client_id unless
|
19
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_client_id.nil?
|
20
|
+
@_o_auth_client_secret = client_credentials_auth_credentials.o_auth_client_secret unless
|
21
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_client_secret.nil?
|
22
|
+
@_o_auth_token = client_credentials_auth_credentials.o_auth_token unless
|
23
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_token.nil?
|
24
|
+
@_o_auth_clock_skew = client_credentials_auth_credentials.o_auth_clock_skew unless
|
25
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_clock_skew.nil?
|
26
|
+
@_o_auth_token_provider = client_credentials_auth_credentials.o_auth_token_provider unless
|
27
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_token_provider.nil?
|
28
|
+
@_o_auth_on_token_update = client_credentials_auth_credentials.o_auth_on_token_update unless
|
29
|
+
client_credentials_auth_credentials.nil? || client_credentials_auth_credentials.o_auth_on_token_update.nil?
|
30
|
+
@_o_auth_api = OAuthAuthorizationController.new(config)
|
31
|
+
super({})
|
32
|
+
end
|
33
|
+
|
34
|
+
# Validates the oAuth token.
|
35
|
+
# @return [Boolean] true if the token is present and not expired.
|
36
|
+
def valid
|
37
|
+
@_o_auth_token = get_token_from_provider
|
38
|
+
@_o_auth_token.is_a?(OAuthToken) && !token_expired?(@_o_auth_token)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Builds the basic auth header for endpoints in the OAuth Authorization Controller.
|
42
|
+
# @return [String] The value of the Authentication header.
|
43
|
+
def build_basic_auth_header
|
44
|
+
"Basic #{AuthHelper.get_base64_encoded_value(@_o_auth_client_id, @_o_auth_client_secret)}"
|
45
|
+
end
|
46
|
+
|
47
|
+
# Fetches the token.
|
48
|
+
# @param [Hash] additional_params Any additional form parameters.
|
49
|
+
# @return [OAuthToken] The oAuth token instance.
|
50
|
+
def fetch_token(additional_params: nil)
|
51
|
+
token = @_o_auth_api.request_token(
|
52
|
+
{
|
53
|
+
'authorization' => build_basic_auth_header
|
54
|
+
},
|
55
|
+
_field_parameters: additional_params
|
56
|
+
).data
|
57
|
+
if token.respond_to?('expires_in') && !token.expires_in.nil?
|
58
|
+
token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i)
|
59
|
+
end
|
60
|
+
token
|
61
|
+
end
|
62
|
+
|
63
|
+
# Checks if OAuth token has expired.
|
64
|
+
# @param [OAuthToken] token The oAuth token instance.
|
65
|
+
# @return [Boolean] true if the token's expiry exist and also the token is expired, false otherwise.
|
66
|
+
def token_expired?(token)
|
67
|
+
token.respond_to?('expiry') && AuthHelper.token_expired?(token.expiry, @_o_auth_clock_skew)
|
68
|
+
end
|
69
|
+
|
70
|
+
def apply(http_request)
|
71
|
+
auth_params = { 'Authorization' => "Bearer #{@_o_auth_token.access_token}" }
|
72
|
+
AuthHelper.apply(auth_params, http_request.method(:add_header))
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
# This provides the OAuth Token from either the user configured callbacks or from default provider.
|
78
|
+
# @return [OAuthToken] The fetched oauth token.
|
79
|
+
def get_token_from_provider
|
80
|
+
return @_o_auth_token if @_o_auth_token && !token_expired?(@_o_auth_token)
|
81
|
+
|
82
|
+
if @_o_auth_token_provider
|
83
|
+
o_auth_token = @_o_auth_token_provider.call(@_o_auth_token, self)
|
84
|
+
@_o_auth_on_token_update&.call(o_auth_token)
|
85
|
+
return o_auth_token
|
86
|
+
end
|
87
|
+
begin
|
88
|
+
o_auth_token = fetch_token
|
89
|
+
@_o_auth_on_token_update&.call(o_auth_token)
|
90
|
+
o_auth_token
|
91
|
+
rescue ApiException
|
92
|
+
@_o_auth_token
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
# Data class for ClientCredentialsAuthCredentials.
|
98
|
+
class ClientCredentialsAuthCredentials
|
99
|
+
attr_reader :o_auth_client_id, :o_auth_client_secret, :o_auth_token,
|
100
|
+
:o_auth_token_provider, :o_auth_on_token_update,
|
101
|
+
:o_auth_clock_skew
|
102
|
+
|
103
|
+
def initialize(o_auth_client_id:, o_auth_client_secret:, o_auth_token: nil,
|
104
|
+
o_auth_token_provider: nil, o_auth_on_token_update: nil,
|
105
|
+
o_auth_clock_skew: nil)
|
106
|
+
raise ArgumentError, 'o_auth_client_id cannot be nil' if o_auth_client_id.nil?
|
107
|
+
raise ArgumentError, 'o_auth_client_secret cannot be nil' if o_auth_client_secret.nil?
|
108
|
+
|
109
|
+
@o_auth_client_id = o_auth_client_id
|
110
|
+
@o_auth_client_secret = o_auth_client_secret
|
111
|
+
@o_auth_token = o_auth_token
|
112
|
+
@o_auth_token_provider = o_auth_token_provider
|
113
|
+
@o_auth_on_token_update = o_auth_on_token_update
|
114
|
+
@o_auth_clock_skew = o_auth_clock_skew
|
115
|
+
end
|
116
|
+
|
117
|
+
def clone_with(o_auth_client_id: nil, o_auth_client_secret: nil,
|
118
|
+
o_auth_token: nil, o_auth_token_provider: nil,
|
119
|
+
o_auth_on_token_update: nil, o_auth_clock_skew: nil)
|
120
|
+
o_auth_client_id ||= self.o_auth_client_id
|
121
|
+
o_auth_client_secret ||= self.o_auth_client_secret
|
122
|
+
o_auth_token ||= self.o_auth_token
|
123
|
+
o_auth_token_provider ||= self.o_auth_token_provider
|
124
|
+
o_auth_on_token_update ||= self.o_auth_on_token_update
|
125
|
+
o_auth_clock_skew ||= self.o_auth_clock_skew
|
126
|
+
|
127
|
+
ClientCredentialsAuthCredentials.new(
|
128
|
+
o_auth_client_id: o_auth_client_id,
|
129
|
+
o_auth_client_secret: o_auth_client_secret, o_auth_token: o_auth_token,
|
130
|
+
o_auth_token_provider: o_auth_token_provider,
|
131
|
+
o_auth_on_token_update: o_auth_on_token_update,
|
132
|
+
o_auth_clock_skew: o_auth_clock_skew
|
133
|
+
)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# HttpCallBack allows defining callables for pre and post API calls.
|
8
|
+
class HttpCallBack < CoreLibrary::HttpCallback
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# Initializes a new instance of RequestLoggingConfiguration.
|
8
|
+
class RequestLoggingConfiguration < CoreLibrary::ApiRequestLoggingConfiguration
|
9
|
+
# @param log_body [Boolean] Indicates whether the message body should be logged. Default is false.
|
10
|
+
# @param log_headers [Boolean] Indicates whether the message headers should be logged. Default is false.
|
11
|
+
# @param headers_to_exclude [Array<String>] Array of headers not displayed in logging. Default is an empty array.
|
12
|
+
# @param headers_to_include [Array<String>] Array of headers to be displayed in logging. Default is an empty array.
|
13
|
+
# @param headers_to_unmask [Array<String>] Array of headers which values are non-sensitive to display in logging.
|
14
|
+
# Default is an empty array.
|
15
|
+
def initialize(log_body: false, log_headers: false, headers_to_include: nil,
|
16
|
+
headers_to_exclude: nil, headers_to_unmask: nil,
|
17
|
+
include_query_in_path: false)
|
18
|
+
super(
|
19
|
+
log_body,
|
20
|
+
log_headers,
|
21
|
+
headers_to_exclude,
|
22
|
+
headers_to_include,
|
23
|
+
headers_to_unmask,
|
24
|
+
include_query_in_path
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def clone_with(log_body: nil, log_headers: nil, headers_to_include: nil,
|
29
|
+
headers_to_exclude: nil, headers_to_unmask: nil, include_query_in_path: nil)
|
30
|
+
log_body ||= self.log_body
|
31
|
+
log_headers ||= self.log_headers
|
32
|
+
headers_to_include ||= self.headers_to_include
|
33
|
+
headers_to_exclude ||= self.headers_to_exclude
|
34
|
+
headers_to_unmask ||= self.headers_to_unmask
|
35
|
+
include_query_in_path ||= self.include_query_in_path
|
36
|
+
|
37
|
+
RequestLoggingConfiguration.class.new(log_body: log_body, log_headers: log_headers,
|
38
|
+
headers_to_include: headers_to_include,
|
39
|
+
headers_to_exclude: headers_to_exclude,
|
40
|
+
headers_to_unmask: headers_to_unmask,
|
41
|
+
include_query_in_path: include_query_in_path)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Initializes a new instance of ResponseLoggingConfiguration.
|
46
|
+
class ResponseLoggingConfiguration < CoreLibrary::ApiResponseLoggingConfiguration
|
47
|
+
# @param log_body [Boolean] Indicates whether the message body should be logged. Default is false.
|
48
|
+
# @param log_headers [Boolean] Indicates whether the message headers should be logged. Default is false.
|
49
|
+
# @param headers_to_exclude [Array<String>] Array of headers not displayed in logging. Default is an empty array.
|
50
|
+
# @param headers_to_include [Array<String>] Array of headers to be displayed in logging. Default is an empty array.
|
51
|
+
# @param headers_to_unmask [Array<String>] Array of headers which values are non-sensitive to display in logging.
|
52
|
+
# Default is an empty array.
|
53
|
+
def initialize(log_body: false, log_headers: false, headers_to_include: nil,
|
54
|
+
headers_to_exclude: nil, headers_to_unmask: nil)
|
55
|
+
super(
|
56
|
+
log_body,
|
57
|
+
log_headers,
|
58
|
+
headers_to_exclude,
|
59
|
+
headers_to_include,
|
60
|
+
headers_to_unmask
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
def clone_with(log_body: nil, log_headers: nil, headers_to_include: nil,
|
65
|
+
headers_to_exclude: nil, headers_to_unmask: nil)
|
66
|
+
log_body ||= self.log_body
|
67
|
+
log_headers ||= self.log_headers
|
68
|
+
headers_to_include ||= self.headers_to_include
|
69
|
+
headers_to_exclude ||= self.headers_to_exclude
|
70
|
+
headers_to_unmask ||= self.headers_to_unmask
|
71
|
+
|
72
|
+
ResponseLoggingConfiguration.new(log_body: log_body, log_headers: log_headers,
|
73
|
+
headers_to_include: headers_to_include,
|
74
|
+
headers_to_exclude: headers_to_exclude,
|
75
|
+
headers_to_unmask: headers_to_unmask)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Initializes a new instance of LoggingConfiguration.
|
80
|
+
class LoggingConfiguration < CoreLibrary::ApiLoggingConfiguration
|
81
|
+
# @param logger [LoggerInterface] The logger to use for logging messages.
|
82
|
+
# @param log_level [LogLevel] The log level to determine which messages should be logged.
|
83
|
+
# @param request_logging_config [RequestLoggingConfiguration] Options for logging HTTP requests.
|
84
|
+
# @param response_logging_config [ResponseLoggingConfiguration] Options for logging HTTP responses.
|
85
|
+
# @param mask_sensitive_headers [Boolean] Indicates whether sensitive headers should be masked in logged messages.
|
86
|
+
def initialize(logger: nil, log_level: nil, mask_sensitive_headers: true,
|
87
|
+
request_logging_config: nil,
|
88
|
+
response_logging_config: nil)
|
89
|
+
request_logging_config ||= RequestLoggingConfiguration.new
|
90
|
+
response_logging_config ||= ResponseLoggingConfiguration.new
|
91
|
+
super(
|
92
|
+
logger,
|
93
|
+
log_level,
|
94
|
+
request_logging_config,
|
95
|
+
response_logging_config,
|
96
|
+
mask_sensitive_headers
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
100
|
+
def clone_with(logger: nil, log_level: nil, mask_sensitive_headers: nil,
|
101
|
+
request_logging_config: nil, response_logging_config: nil)
|
102
|
+
logger ||= self.logger
|
103
|
+
log_level ||= self.log_level
|
104
|
+
mask_sensitive_headers = self.mask_sensitive_headers ||= mask_sensitive_headers
|
105
|
+
request_logging_config ||= self.request_logging_config.clone
|
106
|
+
response_logging_config ||= self.response_logging_config.clone
|
107
|
+
|
108
|
+
LoggingConfiguration.new(logger: logger, log_level: log_level,
|
109
|
+
mask_sensitive_headers: mask_sensitive_headers,
|
110
|
+
request_logging_config: request_logging_config,
|
111
|
+
response_logging_config: response_logging_config)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# Represents the generic logger facade
|
8
|
+
class AbstractLogger < Logger
|
9
|
+
# Logs a message with a specified log level and additional parameters.
|
10
|
+
# @param level [Symbol] The log level of the message.
|
11
|
+
# @param message [String] The message to log.
|
12
|
+
# @param params [Hash] Additional parameters to include in the log message.
|
13
|
+
def log(level, message, params)
|
14
|
+
raise NotImplementedError, 'This method needs to be implemented in a child class.'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# The date and time stamps that are common to authorized payment, captured
|
8
|
+
# payment, and refund transactions.
|
9
|
+
class ActivityTimestamps < BaseModel
|
10
|
+
SKIP = Object.new
|
11
|
+
private_constant :SKIP
|
12
|
+
|
13
|
+
# The date and time, in [Internet date and time
|
14
|
+
# format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
|
15
|
+
# required while fractional seconds are
|
16
|
+
# optional.<blockquote><strong>Note:</strong> The regular expression
|
17
|
+
# provides guidance but does not reject all invalid dates.</blockquote>
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :create_time
|
20
|
+
|
21
|
+
# The date and time, in [Internet date and time
|
22
|
+
# format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
|
23
|
+
# required while fractional seconds are
|
24
|
+
# optional.<blockquote><strong>Note:</strong> The regular expression
|
25
|
+
# provides guidance but does not reject all invalid dates.</blockquote>
|
26
|
+
# @return [String]
|
27
|
+
attr_accessor :update_time
|
28
|
+
|
29
|
+
# A mapping from model property names to API property names.
|
30
|
+
def self.names
|
31
|
+
@_hash = {} if @_hash.nil?
|
32
|
+
@_hash['create_time'] = 'create_time'
|
33
|
+
@_hash['update_time'] = 'update_time'
|
34
|
+
@_hash
|
35
|
+
end
|
36
|
+
|
37
|
+
# An array for optional fields
|
38
|
+
def self.optionals
|
39
|
+
%w[
|
40
|
+
create_time
|
41
|
+
update_time
|
42
|
+
]
|
43
|
+
end
|
44
|
+
|
45
|
+
# An array for nullable fields
|
46
|
+
def self.nullables
|
47
|
+
[]
|
48
|
+
end
|
49
|
+
|
50
|
+
def initialize(create_time: SKIP, update_time: SKIP)
|
51
|
+
@create_time = create_time unless create_time == SKIP
|
52
|
+
@update_time = update_time unless update_time == SKIP
|
53
|
+
end
|
54
|
+
|
55
|
+
# Creates an instance of the object from a hash.
|
56
|
+
def self.from_hash(hash)
|
57
|
+
return nil unless hash
|
58
|
+
|
59
|
+
# Extract variables from the hash.
|
60
|
+
create_time = hash.key?('create_time') ? hash['create_time'] : SKIP
|
61
|
+
update_time = hash.key?('update_time') ? hash['update_time'] : SKIP
|
62
|
+
|
63
|
+
# Create object from extracted values.
|
64
|
+
ActivityTimestamps.new(create_time: create_time,
|
65
|
+
update_time: update_time)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# paypal_server_sdk
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaypalServerSdk
|
7
|
+
# The portable international postal address. Maps to
|
8
|
+
# [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wi
|
9
|
+
# ki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the
|
10
|
+
# autocomplete
|
11
|
+
# attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-cont
|
12
|
+
# rols-the-autocomplete-attribute).
|
13
|
+
class Address < BaseModel
|
14
|
+
SKIP = Object.new
|
15
|
+
private_constant :SKIP
|
16
|
+
|
17
|
+
# The first line of the address, such as number and street, for example,
|
18
|
+
# `173 Drury Lane`. Needed for data entry, and Compliance and Risk checks.
|
19
|
+
# This field needs to pass the full address.
|
20
|
+
# @return [String]
|
21
|
+
attr_accessor :address_line_1
|
22
|
+
|
23
|
+
# The second line of the address, for example, a suite or apartment number.
|
24
|
+
# @return [String]
|
25
|
+
attr_accessor :address_line_2
|
26
|
+
|
27
|
+
# A city, town, or village. Smaller than `admin_area_level_1`.
|
28
|
+
# @return [String]
|
29
|
+
attr_accessor :admin_area_2
|
30
|
+
|
31
|
+
# The highest-level sub-division in a country, which is usually a province,
|
32
|
+
# state, or ISO-3166-2 subdivision. This data is formatted for postal
|
33
|
+
# delivery, for example, `CA` and not `California`. Value, by country,
|
34
|
+
# is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A
|
35
|
+
# province.</li><li>Japan. A prefecture.</li><li>Switzerland. A
|
36
|
+
# *kanton*.</li></ul>
|
37
|
+
# @return [String]
|
38
|
+
attr_accessor :admin_area_1
|
39
|
+
|
40
|
+
# The postal code, which is the ZIP code or equivalent. Typically required
|
41
|
+
# for countries with a postal code or an equivalent. See [postal
|
42
|
+
# code](https://en.wikipedia.org/wiki/Postal_code).
|
43
|
+
# @return [String]
|
44
|
+
attr_accessor :postal_code
|
45
|
+
|
46
|
+
# The [2-character ISO 3166-1 code](/api/rest/reference/country-codes/) that
|
47
|
+
# identifies the country or region.<blockquote><strong>Note:</strong> The
|
48
|
+
# country code for Great Britain is <code>GB</code> and not <code>UK</code>
|
49
|
+
# as used in the top-level domain names for that country. Use the `C2`
|
50
|
+
# country code for China worldwide for comparable uncontrolled price (CUP)
|
51
|
+
# method, bank card, and cross-border transactions.</blockquote>
|
52
|
+
# @return [String]
|
53
|
+
attr_accessor :country_code
|
54
|
+
|
55
|
+
# A mapping from model property names to API property names.
|
56
|
+
def self.names
|
57
|
+
@_hash = {} if @_hash.nil?
|
58
|
+
@_hash['address_line_1'] = 'address_line_1'
|
59
|
+
@_hash['address_line_2'] = 'address_line_2'
|
60
|
+
@_hash['admin_area_2'] = 'admin_area_2'
|
61
|
+
@_hash['admin_area_1'] = 'admin_area_1'
|
62
|
+
@_hash['postal_code'] = 'postal_code'
|
63
|
+
@_hash['country_code'] = 'country_code'
|
64
|
+
@_hash
|
65
|
+
end
|
66
|
+
|
67
|
+
# An array for optional fields
|
68
|
+
def self.optionals
|
69
|
+
%w[
|
70
|
+
address_line_1
|
71
|
+
address_line_2
|
72
|
+
admin_area_2
|
73
|
+
admin_area_1
|
74
|
+
postal_code
|
75
|
+
]
|
76
|
+
end
|
77
|
+
|
78
|
+
# An array for nullable fields
|
79
|
+
def self.nullables
|
80
|
+
[]
|
81
|
+
end
|
82
|
+
|
83
|
+
def initialize(country_code:, address_line_1: SKIP, address_line_2: SKIP,
|
84
|
+
admin_area_2: SKIP, admin_area_1: SKIP, postal_code: SKIP)
|
85
|
+
@address_line_1 = address_line_1 unless address_line_1 == SKIP
|
86
|
+
@address_line_2 = address_line_2 unless address_line_2 == SKIP
|
87
|
+
@admin_area_2 = admin_area_2 unless admin_area_2 == SKIP
|
88
|
+
@admin_area_1 = admin_area_1 unless admin_area_1 == SKIP
|
89
|
+
@postal_code = postal_code unless postal_code == SKIP
|
90
|
+
@country_code = country_code
|
91
|
+
end
|
92
|
+
|
93
|
+
# Creates an instance of the object from a hash.
|
94
|
+
def self.from_hash(hash)
|
95
|
+
return nil unless hash
|
96
|
+
|
97
|
+
# Extract variables from the hash.
|
98
|
+
country_code = hash.key?('country_code') ? hash['country_code'] : nil
|
99
|
+
address_line_1 =
|
100
|
+
hash.key?('address_line_1') ? hash['address_line_1'] : SKIP
|
101
|
+
address_line_2 =
|
102
|
+
hash.key?('address_line_2') ? hash['address_line_2'] : SKIP
|
103
|
+
admin_area_2 = hash.key?('admin_area_2') ? hash['admin_area_2'] : SKIP
|
104
|
+
admin_area_1 = hash.key?('admin_area_1') ? hash['admin_area_1'] : SKIP
|
105
|
+
postal_code = hash.key?('postal_code') ? hash['postal_code'] : SKIP
|
106
|
+
|
107
|
+
# Create object from extracted values.
|
108
|
+
Address.new(country_code: country_code,
|
109
|
+
address_line_1: address_line_1,
|
110
|
+
address_line_2: address_line_2,
|
111
|
+
admin_area_2: admin_area_2,
|
112
|
+
admin_area_1: admin_area_1,
|
113
|
+
postal_code: postal_code)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|