VRFS-3784 refactored free credit decrementing from sale into user for ios

This commit is contained in:
Jonathan Kolyer 2016-01-03 17:38:30 +00:00
parent 8d28efde62
commit adecb8fc20
2 changed files with 20 additions and 9 deletions

View File

@ -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,15 +338,8 @@ 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
current_user.redeem_free_credit
end
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

View File

@ -1740,6 +1740,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