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