diff options
Diffstat (limited to 'app/services/namespaces')
-rw-r--r-- | app/services/namespaces/in_product_marketing_emails_service.rb | 5 | ||||
-rw-r--r-- | app/services/namespaces/invite_team_email_service.rb | 61 |
2 files changed, 5 insertions, 61 deletions
diff --git a/app/services/namespaces/in_product_marketing_emails_service.rb b/app/services/namespaces/in_product_marketing_emails_service.rb index 90900698e1a..e42c3498c21 100644 --- a/app/services/namespaces/in_product_marketing_emails_service.rb +++ b/app/services/namespaces/in_product_marketing_emails_service.rb @@ -45,6 +45,11 @@ module Namespaces } }.freeze + def self.email_count_for_track(track) + interval_days = TRACKS.dig(track.to_sym, :interval_days) + interval_days&.count || 0 + end + def self.send_for_all_tracks_and_intervals TRACKS.each_key do |track| TRACKS[track][:interval_days].each do |interval| diff --git a/app/services/namespaces/invite_team_email_service.rb b/app/services/namespaces/invite_team_email_service.rb deleted file mode 100644 index 78edc205990..00000000000 --- a/app/services/namespaces/invite_team_email_service.rb +++ /dev/null @@ -1,61 +0,0 @@ -# frozen_string_literal: true - -module Namespaces - class InviteTeamEmailService - include Gitlab::Experiment::Dsl - - TRACK = :invite_team - DELIVERY_DELAY_IN_MINUTES = 20.minutes - - def self.send_email(user, group) - new(user, group).execute - end - - def initialize(user, group) - @group = group - @user = user - @sent_email_records = InProductMarketingEmailRecords.new - end - - def execute - return unless user.email_opted_in? - return unless group.root? - return unless group.setup_for_company - - # Exclude group if users other than the creator have already been - # added/invited - return unless group.member_count == 1 - - return if email_for_track_sent_to_user? - - experiment(:invite_team_email, group: group) do |e| - e.publish_to_database - e.candidate do - send_email(user, group) - sent_email_records.add(user, track, series) - sent_email_records.save! - end - end - end - - private - - attr_reader :user, :group, :sent_email_records - - def send_email(user, group) - NotificationService.new.in_product_marketing(user.id, group.id, track, series) - end - - def track - TRACK - end - - def series - 0 - end - - def email_for_track_sent_to_user? - Users::InProductMarketingEmail.for_user_with_track_and_series(user, track, series).present? - end - end -end |