diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index e955fa6a7..0490b1afa 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -5,6 +5,9 @@ module JamRuby JAMTRACK_SALE = 'jamtrack' + SOURCE_RECURLY = 'recurly' + SOURCE_IOS = 'ios' + belongs_to :user, class_name: 'JamRuby::User' has_many :sale_line_items, class_name: 'JamRuby::SaleLineItem' @@ -111,8 +114,6 @@ module JamRuby end def self.ios_purchase(current_user, jam_track, receipt, price_data) - - jam_track_right = nil # everything needs to go into a transaction! If anything goes wrong, we need to raise an exception to break it @@ -120,11 +121,10 @@ module JamRuby using_free_credit = current_user.redeem_free_credit - sale = create_jam_track_sale(current_user, 'ios') + sale = create_jam_track_sale(current_user, SOURCE_IOS) if sale.valid? - # JONATHAN: the 'redeem freebie' path has no communication to Apple. That's OK I assume? if using_free_credit SaleLineItem.create_from_jam_track(current_user, sale, jam_track, using_free_credit) sale.recurly_subtotal_in_cents = 0 @@ -133,10 +133,10 @@ module JamRuby sale.recurly_currency = 'USD' sale.save! else + price_info = validateIOSReceipt(receipt, price_data, current_user, sale) SaleLineItem.create_from_jam_track(current_user, sale, jam_track, using_free_credit) - sale.recurly_subtotal_in_cents = price_info[:subtotal_in_cents] sale.recurly_tax_in_cents = price_info[:tax_in_cents] sale.recurly_total_in_cents = price_info[:total_in_cents] @@ -231,7 +231,7 @@ module JamRuby sale = nil Sale.transaction do - sale = create_jam_track_sale(current_user, 'recurly') + sale = create_jam_track_sale(current_user, SOURCE_RECURLY) if sale.valid? if is_only_freebie(shopping_carts)