Sha256: cff1d87a721ad16bfaf8cef580ec40ce3400864ae8c075e03b9462200e8ebccc
Contents?: true
Size: 1.72 KB
Versions: 3
Compression:
Stored size: 1.72 KB
Contents
module MpApi class Card attr_reader :token, :customer_id, :external_id, :cardholder_name, :expiration_month, :expiration_year, :first_six_digits, :last_four_digits, :issuer_id, :mp_payment_method_id, :error, :error_detail def initialize(token: nil, customer_id: nil, external_id: nil, cardholder_name: nil, expiration_month: nil, expiration_year: nil, first_six_digits: nil, last_four_digits: nil, issuer_id: nil, mp_payment_method_id: nil, error: nil, error_detail: nil) @token = token @customer_id = customer_id @external_id = external_id @cardholder_name = cardholder_name @expiration_month = expiration_month @expiration_year = expiration_year @first_six_digits = first_six_digits @last_four_digits = last_four_digits @issuer_id = issuer_id @mp_payment_method_id = mp_payment_method_id @error = error @error_detail = error_detail end def build_json { token: token } end def create response = Client.new.create_card(customer_id, JSON.dump(build_json)) self.class.new(**self.class.build_hash(response.json)) end def self.build_hash(response) { external_id: response.dig("id"), cardholder_name: response.dig("cardholder", "name"), expiration_month: response.dig("expiration_month"), expiration_year: response.dig("expiration_year"), first_six_digits: response.dig("first_six_digits"), last_four_digits: response.dig("last_four_digits"), issuer_id: response.dig("issuer", "id"), mp_payment_method_id: response.dig("payment_method", "id"), error: response.dig("message"), error_detail: response.dig("cause") } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mp_api-1.2.2 | lib/mp_api/card.rb |
mp_api-1.2.1 | lib/mp_api/card.rb |
mp_api-1.2.0 | lib/mp_api/card.rb |