Sha256: a7c81ea7cba054eec109f1c7779f7be1c7893acf11d22922a69e1119c9d359df

Contents?: true

Size: 688 Bytes

Versions: 8

Compression:

Stored size: 688 Bytes

Contents

module Zoop
  class Token < Zoop::Model

    def create
      @custom_url = self.class.url(self.card_number.present?)
      super
    end

    def destroy
      raise NotImplementedError
    end

    def associate(customer_id)
      raise RequestError.new('Invalid Token ID') unless id.present?
      payment_method.class.associate(customer: customer_id.to_s, token: id.to_s)
    end

    def payment_method
      self.card || self.bank_account
    end

    class << self

      def url(*params)
        case params.first
        when TrueClass then '/cards/tokens'
        when FalseClass then '/bank_accounts/tokens'
        else super(*params)
        end
      end
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
zoop-0.3.5 lib/zoop/resources/token.rb
zoop-0.3.4 lib/zoop/resources/token.rb
zoop-0.3.3 lib/zoop/resources/token.rb
zoop-0.3.2 lib/zoop/resources/token.rb
zoop-0.3.1 lib/zoop/resources/token.rb
zoop-0.3.0 lib/zoop/resources/token.rb
zoop-0.2.1 lib/zoop/resources/token.rb
zoop-0.1.0 lib/zoop/resources/token.rb