lib/balanced/resources.rb in balanced-0.2.1 vs lib/balanced/resources.rb in balanced-0.2.2

- old
+ new

@@ -3,14 +3,23 @@ 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=nil, + meta={}, description=nil, source_uri=nil) debit = Debit.new( :uri => self.debits_uri, :amount => amount, @@ -62,20 +71,37 @@ 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, @@ -99,23 +125,40 @@ 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, appears_on_statement_as, meta, description + 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, @@ -125,35 +168,73 @@ 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=nil, description=nil + 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=mil, description=nil + 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=nil + def credit amount, description=nil, meta={} self.account.credit(amount, description, meta, self.uri) end end end \ No newline at end of file