Skip to content
Snippets Groups Projects

Experiment: "Build iOS app guide" email campaign

Merged Eugie Limpin requested to merge experiment/publish-ios-apps-with-fastlane into master
6 files
+ 161
4
Compare changes
  • Side-by-side
  • Inline
Files
6
@@ -19,11 +19,35 @@ def target_platforms
def record_target_platforms
return unless target_platforms.present?
setting = ::ProjectSetting.find_or_initialize_by(project: project) # rubocop:disable CodeReuse/ActiveRecord
setting.target_platforms = target_platforms
setting.save
project_setting.target_platforms = target_platforms
project_setting.save
setting.target_platforms
send_build_ios_app_guide_email
project_setting.target_platforms
end
def project_setting
@project_setting ||= ::ProjectSetting.find_or_initialize_by(project: project) # rubocop:disable CodeReuse/ActiveRecord
end
def project_owner
@project_owner ||= project.first_owner
end
def project_owner_can_receive_marketing_emails?
project_owner.can?(:receive_notifications) && project_owner.email_opted_in?
end
def send_build_ios_app_guide_email
# move sending logic to a service?
return if Users::InProductMarketingEmail.for_user_with_campaign(project_owner, 'build_ios_app_guide').present?
return unless project_setting.saved_change_to_target_platforms?
return unless project_owner_can_receive_marketing_emails?
Notify.build_ios_app_guide_email(project_owner.notification_email_or_default).deliver_later
Users::InProductMarketingEmail.create(user: project_owner, campaign: 'build_ios_app_guide')
end
end
end
Loading