more changes for event rework

This commit is contained in:
Seth Call 2026-01-14 10:30:33 -06:00
parent eb298d6859
commit 73d2a7a020
3 changed files with 34 additions and 8 deletions

View File

@ -547,13 +547,11 @@ module JamRuby
begin begin
case field_name.to_s case field_name.to_s
when 'first_ran_client_at' when 'first_ran_client_at'
CapiTransmitter.send_event('OpenClient', self) # StartTrial: When user opens the app
CapiTransmitter.send_event('StartTrial', self, { value: '0.00', currency: 'USD', predicted_ltv: '0.00' })
when 'first_certified_gear_at' when 'first_certified_gear_at'
CapiTransmitter.send_event('CompleteGearWizard', self) # CustomizeProduct: When user finishes Gear Wizard
when 'first_music_session_at' CapiTransmitter.send_event('CustomizeProduct', self)
CapiTransmitter.send_event('FirstMusicSession', self)
when 'first_real_music_session_at'
CapiTransmitter.send_event('RealMusicSession', self)
end end
rescue => e rescue => e
Rails.logger.error("Error sending CAPI event: #{e.message}") Rails.logger.error("Error sending CAPI event: #{e.message}")
@ -1886,6 +1884,11 @@ module JamRuby
if user.errors.any? if user.errors.any?
raise ActiveRecord::Rollback raise ActiveRecord::Rollback
else else
# CAPI Hook: CompleteRegistration
if user.facebook_click_id.present?
CapiTransmitter.send_event('CompleteRegistration', user)
end
# if the partner ID was present and the partner doesn't already have a user associated, associate this new user with the affiliate partner # if the partner ID was present and the partner doesn't already have a user associated, associate this new user with the affiliate partner
if affiliate_partner && affiliate_partner.partner_user.nil? if affiliate_partner && affiliate_partner.partner_user.nil?
affiliate_partner.partner_user = user affiliate_partner.partner_user = user

View File

@ -166,6 +166,29 @@ class ApiRecurlyController < ApiController
def create_subscription def create_subscription
begin begin
sale = Sale.purchase_subscription(current_user, params[:recurly_token], params[:plan_code]) sale = Sale.purchase_subscription(current_user, params[:recurly_token], params[:plan_code])
# CAPI Hook: Subscribe
begin
plan_code = params[:plan_code]
monthly_cost = case plan_code
when JamRuby::SubscriptionDefinitions::JAM_SILVER, JamRuby::SubscriptionDefinitions::JAM_SILVER_YEARLY
5.00
when JamRuby::SubscriptionDefinitions::JAM_GOLD, JamRuby::SubscriptionDefinitions::JAM_GOLD_YEARLY
10.00
when JamRuby::SubscriptionDefinitions::JAM_PLATINUM, JamRuby::SubscriptionDefinitions::JAM_PLATINUM_YEARLY
20.00
else
0.00
end
if monthly_cost > 0
ltv = monthly_cost * 12
CapiTransmitter.send_event('Subscribe', current_user, { value: monthly_cost.to_s, currency: 'USD', predicted_ltv: ltv.to_s })
end
rescue => e
puts "Error sending CAPI Subscribe event #{current_user.email}, #{e.message}"
end
subscription = Recurly::Subscription.find(current_user.recurly_subscription_id) subscription = Recurly::Subscription.find(current_user.recurly_subscription_id)
render :json => subscription.to_json render :json => subscription.to_json
rescue RecurlyClientError => x rescue RecurlyClientError => x

View File

@ -15,8 +15,8 @@ namespace :capi do
# Mock user # Mock user
user = User.last user = User.last
if user if user
puts "Sending test event 'TestEvent' for User ID: #{user.id}" puts "Sending test event 'StartTrial' for User ID: #{user.id}"
CapiTransmitter.send_event('TestEvent', user) CapiTransmitter.send_event('StartTrial', user, { value: '0.00', currency: 'USD', predicted_ltv: '0.00' })
puts "Check Rails log for output." puts "Check Rails log for output."
else else
puts "No user found in database." puts "No user found in database."