Sha256: 0ffb42316de4d569bf389d6aa7969c122fdf4ed005fe293b592dd02652bcb251

Contents?: true

Size: 1.9 KB

Versions: 5

Compression:

Stored size: 1.9 KB

Contents

module Pingpp
  class Order < APIResource
    extend Pingpp::APIOperations::Create
    extend Pingpp::APIOperations::List
    include Pingpp::APIOperations::Update

    def pay(params, opts={})
      response, opts = request(:post, pay_url, params, opts)
      initialize_from(response, opts)
    end

    def self.pay(id, params, opts={})
      response, opts = request(:post, pay_url(id), params, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    def self.cancel(id, opts={})
      update(id, {:status => 'canceled'}, opts)
    end

    def self.retrieve_charge(id, charge_id, opts={})
      response, opts = request(:get, "#{resource_url}/#{id}/charges/#{charge_id}", {}, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    def self.list_charges(id, params={}, opts={})
      response, opts = request(:get, "#{resource_url}/#{id}/charges", params, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    def self.refund(id, params, opts={})
      response, opts = request(:post, refund_url(id), params, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    def refund(params, opts={})
      response, opts = request(:post, refund_url, params, opts)
      initialize_from(response, opts)
    end

    def self.retrieve_refund(id, refund_id, opts={})
      response, opts = request(:get, "#{refund_url(id)}/#{refund_id}", {}, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    def self.list_refunds(id, params={}, opts={})
      response, opts = request(:get, refund_url(id), params, opts)
      Util.convert_to_pingpp_object(response, opts)
    end

    private

    def pay_url
      resource_url + '/pay'
    end

    def self.pay_url(order)
      "#{resource_url}/#{order}/pay"
    end

    def refund_url
      resource_url + '/order_refunds'
    end

    def self.refund_url(order)
      "#{resource_url}/#{order}/order_refunds"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pingpp-2.2.4 lib/pingpp/order.rb
pingpp-2.2.3 lib/pingpp/order.rb
pingpp-2.2.2 lib/pingpp/order.rb
pingpp-2.2.1 lib/pingpp/order.rb
pingpp-2.2.0 lib/pingpp/order.rb