Sha256: 2260b510bbc3a8eae2119788a3072fb5e13bf9098802dde0fb0fc8192ba4b85e

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

require "omise/object"
require "omise/bank_account"
require "omise/list"
require "omise/recipient"

module Omise
  class Transfer < OmiseObject
    self.endpoint = "/transfers"

    def self.create(attributes = {})
      new resource(location, attributes).post(attributes)
    end

    def self.retrieve(id, attributes = {})
      new resource(location(id), attributes).get(attributes)
    end

    def self.list(attributes = {})
      List.new resource(location, attributes).get(attributes)
    end

    def reload(attributes = {})
      assign_attributes resource(attributes).get(attributes)
    end

    def update(attributes = {})
      assign_attributes resource(attributes).patch(attributes)
    end

    def destroy(attributes = {})
      assign_attributes resource(attributes).delete
    end

    def recipient
      if @attributes["recipient"]
        @recipient ||= Recipient.retrieve(@attributes["recipient"])
      end
    end

    def bank_account
      if @attributes["bank_account"]
        @bank_account ||= BankAccount.new(@attributes["bank_account"])
      end
    end

    private

    def cleanup!
      @bank_account = nil
      @recipient = nil
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
omise-0.1.5 lib/omise/transfer.rb
omise-0.1.4 lib/omise/transfer.rb