From a1837914b8f989e2c45fb7b78fc648f0d3f957d6 Mon Sep 17 00:00:00 2001 From: jessib Date: Tue, 19 Mar 2013 15:54:24 -0700 Subject: Start to adding customers to braintree vault. --- billing/app/models/customer.rb | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 billing/app/models/customer.rb (limited to 'billing/app/models') diff --git a/billing/app/models/customer.rb b/billing/app/models/customer.rb new file mode 100644 index 0000000..611b9d1 --- /dev/null +++ b/billing/app/models/customer.rb @@ -0,0 +1,38 @@ +class Customer < CouchRest::Model::Base + + #FIELDS = [:first_name, :last_name, :phone, :website, :company, :fax, :addresses, :credit_cards, :custom_fields] + + use_database "customers" + belongs_to :user + property :braintree_customer_id + + design do + view :by_user_id + view :by_braintree_customer_id + end + + def has_payment_info? + !!braintree_customer_id + end + + # from braintree_ruby_examples/rails3_tr_devise and should be tweaked + def with_braintree_data! + return self unless has_payment_info? + braintree_data = Braintree::Customer.find(braintree_customer_id) + + debugger + #FIELDS.each do |field| + # send(:"#{field}=", braintree_data.send(field)) + #end + self + end + + ##?? + def default_credit_card + return unless has_payment_info? + + credit_cards.find { |cc| cc.default? } + end + + +end -- cgit v1.2.3