Sha256: 9c4b45fb9cf625057ff2af4a3cd906a6f7253b1efb36886a707135e7986e8be0

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

module Stripe
  class Charge < APIResource
    extend Stripe::APIOperations::List
    extend Stripe::APIOperations::Create
    include Stripe::APIOperations::Update

    def refund(params={}, opts={})
      self.refunds.create(params, opts)

      # now that a refund has been created, we expect the state of this object
      # to change as well (i.e. `refunded` will now be `true`) so refresh it
      # from the server
      self.refresh
    end

    def capture(params={}, opts={})
      response, opts = request(:post, capture_url, params, opts)
      initialize_from(response, opts)
    end

    def update_dispute(params={}, opts={})
      response, opts = request(:post, dispute_url, params, opts)
      initialize_from({ :dispute => response }, opts, true)
      dispute
    end

    def close_dispute(params={}, opts={})
      response, opts = request(:post, close_dispute_url, params, opts)
      initialize_from(response, opts)
    end

    def mark_as_fraudulent
      params = {
        :fraud_details => { :user_report => 'fraudulent' }
      }
      response, opts = request(:post, url, params)
      initialize_from(response, opts)
    end

    def mark_as_safe
      params = {
        :fraud_details => { :user_report => 'safe' }
      }
      response, opts = request(:post, url, params)
      initialize_from(response, opts)
    end

    private

    def capture_url
      url + '/capture'
    end

    def dispute_url
      url + '/dispute'
    end

    def close_dispute_url
      url + '/dispute/close'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stripe-1.35.0 lib/stripe/charge.rb
stripe-1.34.0 lib/stripe/charge.rb
stripe-1.33.1 lib/stripe/charge.rb