Sha256: 6fc064c00ae373429e853cf66a5616a2161d3b6994252428a25c75b453902eed

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

module MercadoPago
  module CustomCheckout
    class CardToken < Resource
      attr_reader :id, :status, :card_id, :last_digits, :cardholder, :extras

      def initialize(client, id:, **extras)
        @client = client
        @id = id
        process_hash(extras) if extras
      end

      def create(payload)
        response = @client.call(:card_tokens, :create, payload)
        if response.key?(:error)
          response
        else
          process_hash(response)
          self
        end
      end

      def retrieve
        response = @client.call(:card_tokens, :retrieve, { id: id })
        if response.key?(:error)
          response
        else
          process_hash(response)
          self
        end
      end

      def update(payload)
        response = @client.call(:card_tokens, :update, payload)
        if response.key?(:error)
          response
        else
          process_hash(response)
          self
        end
      end

      private

      def attr_inspect
        [:id, :last_digits, :card_id]
      end

      def process_hash(data)
        @status = data.delete(:status)
        @card_id = data.delete(:card_id)
        @last_digits = data.delete(:last_four_digits)
        @cardholder = data.delete(:cardholder)
        @extras = data
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mercadopago-custom-checkout-0.2.0 lib/mercadopago/custom_checkout/card_token.rb
mercadopago-custom-checkout-0.1.2 lib/mercadopago/custom_checkout/card_token.rb
mercadopago-custom-checkout-0.1.1 lib/mercadopago/custom_checkout/card_token.rb