diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index cddf6b8d8..9561c71b5 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -71,6 +71,8 @@ module JamRuby def self.ios_purchase(current_user, jam_track, receipt) + current_user.redeem_free_credit + jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| jam_track_right.redeemed = false jam_track_right.version = jam_track.version @@ -336,16 +338,9 @@ module JamRuby # first, mark the free has_redeemable_jamtrack field if that's still true # and if still they have more free things, then redeem the giftable_jamtracks if shopping_cart.free? - if user.has_redeemable_jamtrack - User.where(id: current_user.id).update_all(has_redeemable_jamtrack: false) - current_user.has_redeemable_jamtrack = false - else - User.where(id: current_user.id).update_all(gifted_jamtracks: current_user.gifted_jamtracks - 1) - current_user.gifted_jamtracks = current_user.gifted_jamtracks - 1 - end + current_user.redeem_free_credit end - # this can't go in the block above, as it's here to fix bad subscription UUIDs in an update path if jam_track_right.recurly_adjustment_uuid != recurly_adjustment_uuid jam_track_right.recurly_adjustment_uuid = recurly_adjustment_uuid @@ -426,4 +421,4 @@ module JamRuby WHERE sale_type = '#{JAMTRACK_SALE}'") end end -end \ No newline at end of file +end diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 9027519eb..ab4f6f306 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -1742,6 +1742,22 @@ module JamRuby false end end + + def redeem_free_credit + yn = false + if self.has_redeemable_jamtrack + User.where(id: self.id).update_all(has_redeemable_jamtrack: false) + self.has_redeemable_jamtrack = false + yn = true + + elsif 0 < self.gifted_jamtracks + User.where(id: self.id).update_all(gifted_jamtracks: self.gifted_jamtracks - 1) + self.gifted_jamtracks = self.gifted_jamtracks - 1 + yn = true + end + yn + end + private def create_remember_token self.remember_token = SecureRandom.urlsafe_base64 diff --git a/web/app/controllers/api_auths_controller.rb b/web/app/controllers/api_auths_controller.rb index a14ef0f93..b14894f78 100644 --- a/web/app/controllers/api_auths_controller.rb +++ b/web/app/controllers/api_auths_controller.rb @@ -20,6 +20,7 @@ class ApiAuthsController < ApiController first_name: user.first_name, last_name: user.last_name, photo_url: user.photo_url, + id: user.id, email: user.email }, :status => :ok end