lib/balanced/resources.rb in balanced-0.2.5 vs lib/balanced/resources.rb in balanced-0.3.0

- old
+ new

@@ -1,241 +1,13 @@ -module Balanced - - class ApiKey < Resource - end - - class Account < Resource - - - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - def debit (amount=nil, - appears_on_statement_as=nil, - hold_uri=nil, - meta={}, - description=nil, - source_uri=nil) - debit = Debit.new( - :uri => self.debits_uri, - :amount => amount, - :appears_on_statement_as => appears_on_statement_as, - :hold_uri => hold_uri, - :meta => meta, - :description => description, - :source_uri => source_uri, - ) - debit.save - end - - def hold amount, meta={}, source_uri=nil - hold = Hold.new( - :uri => self.holds_uri, - :amount => amount, - :meta => meta, - :source_uri => source_uri, - ) - hold.save - end - - def credit amount, description=nil, meta={}, destination_uri=nil - credit = Credit.new( - :uri => self.credits_uri, - :amount => amount, - :meta => meta, - :description => description, - :destination_uri => destination_uri, - ) - credit.save - end - - def add_card card_uri - self.card_uri = card_uri - save - end - - def add_bank_account bank_account_uri - self.bank_account_uri = bank_account_uri - save - end - - def promote_to_merchant merchant_data - self.merchant = merchant - save - end - - end - - class Merchant < Resource - - def self.me - # TODO: use query - response = Balanced.get collection_path - return nil if response.body.to_s.length.zero? or response.body['total'] == 0 - payload = response.body - construct_from_response payload['items'][0] - end - - def me - self.class.me - end - - end - - class Marketplace < Resource - - def self.my_marketplace - # TODO: use query - response = Balanced.get collection_path - return nil if response.body.to_s.length.zero? or response.body['total'] == 0 - payload = response.body - construct_from_response payload['items'][0] - end - - def my_marketplace - self.class.my_marketplace - end - - def create_buyer email_address, card_uri, name=nil, meta={} - account = Account.new( - :uri => self.accounts_uri, - :email_address => email_address, - :card_uri => card_uri, - :name => name, - :meta => meta, - ) - account.save - end - - def create_merchant email_address, merchant, bank_account_uri=nil, name=nil, meta={} - account = Account.new( - :uri => self.accounts_uri, - :email_address => email_address, - :merchant => merchant, - :bank_account_uri => bank_account_uri, - :name => name, - :meta => meta, - ) - account.save - end - - end - - class Hold < Resource - - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - def void - @is_void = true - save - end - - def capture amount=nil, appears_on_statement_as=nil, meta={}, description=nil - amount ||= self.amount - self.account.debit(amount, appears_on_statement_as, self.uri, meta, description) - end - - end - - class Debit < Resource - - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - def refund amount=nil, description=nil - refund = Refund.new( - :uri => self.refunds_uri, - :debit_uri => self.uri, - :amount => amount, - :description => description, - ) - refund.save - end - - end - - class Credit < Resource - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - end - - class Refund < Resource - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - end - - class Transaction < Resource - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - end - - class Card < Resource - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - def debit amount=nil, appears_on_statement_as=nil, holds_uri=nil, meta={}, description=nil - self.account.debit(amount, appears_on_statement_as, holds_uri, meta, description, self.uri) - end - - def hold amount=nil, meta=nil - self.account.hold(amount, meta, self.uri) - end - end - - class BankAccount < Resource - def initialize attributes = {} - Balanced::Utils.stringify_keys! attributes - unless attributes.has_key? 'uri' - attributes['uri'] = Balanced::Marketplace.my_marketplace.send(self.class.collection_name + '_uri') - end - super attributes - end - - def debit amount, appears_on_statement_as=nil, meta={}, description=nil - self.account.debit(amount, appears_on_statement_as, meta, description, self.uri) - end - - def credit amount, description=nil, meta={} - self.account.credit(amount, description, meta, self.uri) - end - end - -end \ No newline at end of file +$:.unshift File.join(File.dirname(__FILE__), "balanced", "resources") +require "resource" +require "account" +require "api_key" +require "bank_account" +require "card" +require "credit" +require "debit" +require "hold" +require "marketplace" +require "merchant" +require "refund" +require "transaction"