diff options
Diffstat (limited to 'app/models/experiment.rb')
-rw-r--r-- | app/models/experiment.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/experiment.rb b/app/models/experiment.rb index 7dbc95f617a..354b1e0b6b9 100644 --- a/app/models/experiment.rb +++ b/app/models/experiment.rb @@ -10,6 +10,10 @@ class Experiment < ApplicationRecord find_or_create_by!(name: name).record_user_and_group(user, group_type, context) end + def self.add_group(name, variant:, group:) + find_or_create_by!(name: name).record_group_and_variant!(group, variant) + end + def self.record_conversion_event(name, user) find_or_create_by!(name: name).record_conversion_event_for_user(user) end @@ -24,4 +28,8 @@ class Experiment < ApplicationRecord def record_conversion_event_for_user(user) experiment_users.find_by(user: user, converted_at: nil)&.touch(:converted_at) end + + def record_group_and_variant!(group, variant) + experiment_subjects.find_or_initialize_by(group: group).update!(variant: variant) + end end |