def promote_member(user: _User, source: str) -> _User: """ Promote a user to Member role and change it's role on Email Marketing. Will not fail in case API call fails. Email welcome email is sent to user :param source: source of traffic :param user: :return: """ _core_facade.promote_to_member(user, source) _cohorts_facade.subscribe_to_last_cohort(user) cohort = _cohorts_facade.find_most_recent_cohort() sync_user_on_discourse(user) try: _email_marketing_facade.create_or_update_member(user.first_name, user.email, id=user.id) _email_marketing_facade.tag_as(user.email, user.id, f'turma-{cohort.slug}') except _ActiveCampaignError: pass email_msg = render_to_string( 'payments/membership_email.txt', { 'user': user, 'cohort_detail_url': build_absolute_uri(cohort.get_absolute_url()) }) _send_mail( f'Inscrição na Turma {cohort.title} realizada! Confira o link com detalhes.', email_msg, _settings.DEFAULT_FROM_EMAIL, [user.email]) return user
def promote_member(user: _User, source: str) -> _User: """ Promote a user to Member role and change it's role on Email Marketing. Will not fail in case API call fails. Email welcome email is sent to user :param source: source of traffic :param user: :return: """ _core_facade.promote_to_member(user, source) _cohorts_facade.subscribe_to_last_cohort(user) cohort = _cohorts_facade.find_most_recent_cohort() sync_user_on_discourse.delay(user.id) _email_marketing_facade.create_or_update_member.delay( user.first_name, user.email, f'turma-{cohort.slug}', id=user.id) return user