Class: Payabli::TokenStorage::Client
- Inherits:
-
Object
- Object
- Payabli::TokenStorage::Client
- Defined in:
- lib/payabli/token_storage/client.rb
Instance Method Summary collapse
-
#add_method(request_options: {}, **params) ⇒ Payabli::TokenStorage::Types::AddMethodResponse
Saves a payment method for reuse.
-
#get_method(request_options: {}, **params) ⇒ Payabli::TokenStorage::Types::GetMethodResponse
Retrieves details for a saved payment method.
- #initialize(client:) ⇒ void constructor
-
#remove_method(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponsePaymethodDelete
Deletes a saved payment method.
-
#update_method(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponsePaymethodDelete
Updates a saved payment method.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/payabli/token_storage/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#add_method(request_options: {}, **params) ⇒ Payabli::TokenStorage::Types::AddMethodResponse
Saves a payment method for reuse. This call exchanges sensitive payment information for a token that can be used to process future transactions. The ‘ReferenceId` value in the response is the `storedMethodId` to use with transactions.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/payabli/token_storage/client.rb', line 31 def add_method(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) query_param_names = %i[ach_validation create_anonymous force_customer_creation temporary] query_params = {} query_params["achValidation"] = params[:ach_validation] if params.key?(:ach_validation) query_params["createAnonymous"] = params[:create_anonymous] if params.key?(:create_anonymous) query_params["forceCustomerCreation"] = params[:force_customer_creation] if params.key?(:force_customer_creation) query_params["temporary"] = params[:temporary] if params.key?(:temporary) params = params.except(*query_param_names) headers = {} headers["idempotencyKey"] = params[:idempotency_key] if params[:idempotency_key] request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "TokenStorage/add", headers: headers, query: query_params, body: Payabli::TokenStorage::Types::RequestTokenStorage.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::TokenStorage::Types::AddMethodResponse.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get_method(request_options: {}, **params) ⇒ Payabli::TokenStorage::Types::GetMethodResponse
Retrieves details for a saved payment method.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/payabli/token_storage/client.rb', line 81 def get_method(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) query_param_names = %i[card_expiration_format include_temporary] query_params = {} query_params["cardExpirationFormat"] = params[:card_expiration_format] if params.key?(:card_expiration_format) query_params["includeTemporary"] = params[:include_temporary] if params.key?(:include_temporary) params = params.except(*query_param_names) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "TokenStorage/#{URI.encode_uri_component(params[:method_id].to_s)}", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::TokenStorage::Types::GetMethodResponse.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#remove_method(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponsePaymethodDelete
Deletes a saved payment method.
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/payabli/token_storage/client.rb', line 122 def remove_method(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "TokenStorage/#{URI.encode_uri_component(params[:method_id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::PayabliApiResponsePaymethodDelete.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#update_method(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponsePaymethodDelete
Updates a saved payment method.
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/payabli/token_storage/client.rb', line 157 def update_method(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) path_param_names = %i[method_id] body_params = params.except(*path_param_names) query_param_names = %i[ach_validation] query_params = {} query_params["achValidation"] = params[:ach_validation] if params.key?(:ach_validation) params = params.except(*query_param_names) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "PUT", path: "TokenStorage/#{URI.encode_uri_component(params[:method_id].to_s)}", query: query_params, body: Payabli::TokenStorage::Types::RequestTokenStorage.new(body_params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::PayabliApiResponsePaymethodDelete.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |