Emit events on proton actions (#1089)
* Emit events on proton actions * Update app/account_linking.py Co-authored-by: Adrià Casajús <acasajus@users.noreply.github.com> * Update app/account_linking.py Co-authored-by: Adrià Casajús <acasajus@users.noreply.github.com> Co-authored-by: Adrià Casajús <acasajus@users.noreply.github.com>
This commit is contained in:
parent
cf5ff6fa23
commit
3b47e79fae
|
@ -2,6 +2,7 @@ from abc import ABC, abstractmethod
|
||||||
from arrow import Arrow
|
from arrow import Arrow
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
from newrelic import agent
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from app.db import Session
|
from app.db import Session
|
||||||
|
@ -44,6 +45,7 @@ def set_plan_for_partner_user(partner_user: PartnerUser, plan: SLPlan):
|
||||||
f"Deleting partner_subscription [user_id={partner_user.user_id}] [partner_id={partner_user.partner_id}]"
|
f"Deleting partner_subscription [user_id={partner_user.user_id}] [partner_id={partner_user.partner_id}]"
|
||||||
)
|
)
|
||||||
PartnerSubscription.delete(sub.id)
|
PartnerSubscription.delete(sub.id)
|
||||||
|
agent.record_custom_event("PlanChange", {"plan": "free"})
|
||||||
else:
|
else:
|
||||||
if sub is None:
|
if sub is None:
|
||||||
LOG.i(
|
LOG.i(
|
||||||
|
@ -53,10 +55,15 @@ def set_plan_for_partner_user(partner_user: PartnerUser, plan: SLPlan):
|
||||||
partner_user_id=partner_user.id,
|
partner_user_id=partner_user.id,
|
||||||
end_at=plan.expiration,
|
end_at=plan.expiration,
|
||||||
)
|
)
|
||||||
|
agent.record_custom_event("PlanChange", {"plan": "premium", "type": "new"})
|
||||||
else:
|
else:
|
||||||
|
if sub.end_at != plan.expiration:
|
||||||
LOG.i(
|
LOG.i(
|
||||||
f"Updating partner_subscription [user_id={partner_user.user_id}] [partner_id={partner_user.partner_id}]"
|
f"Updating partner_subscription [user_id={partner_user.user_id}] [partner_id={partner_user.partner_id}]"
|
||||||
)
|
)
|
||||||
|
agent.record_custom_event(
|
||||||
|
"PlanChange", {"plan": "premium", "type": "extension"}
|
||||||
|
)
|
||||||
sub.end_at = plan.expiration
|
sub.end_at = plan.expiration
|
||||||
Session.commit()
|
Session.commit()
|
||||||
|
|
||||||
|
@ -130,6 +137,8 @@ class NewUserStrategy(ClientMergeStrategy):
|
||||||
)
|
)
|
||||||
Session.commit()
|
Session.commit()
|
||||||
|
|
||||||
|
agent.record_custom_event("PartnerUserCreation", {"partner": self.partner.name})
|
||||||
|
|
||||||
return LinkResult(
|
return LinkResult(
|
||||||
user=new_user,
|
user=new_user,
|
||||||
strategy=self.__class__.__name__,
|
strategy=self.__class__.__name__,
|
||||||
|
@ -200,6 +209,7 @@ def link_user(
|
||||||
)
|
)
|
||||||
set_plan_for_partner_user(partner_user, link_request.plan)
|
set_plan_for_partner_user(partner_user, link_request.plan)
|
||||||
|
|
||||||
|
agent.record_custom_event("AccountLinked", {"partner": partner.name})
|
||||||
Session.commit()
|
Session.commit()
|
||||||
return LinkResult(
|
return LinkResult(
|
||||||
user=current_user,
|
user=current_user,
|
||||||
|
|
|
@ -11,6 +11,7 @@ from flask import (
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from flask_wtf.file import FileField
|
from flask_wtf.file import FileField
|
||||||
|
from newrelic import agent
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from wtforms import StringField, validators
|
from wtforms import StringField, validators
|
||||||
from wtforms.fields.html5 import EmailField
|
from wtforms.fields.html5 import EmailField
|
||||||
|
@ -443,11 +444,13 @@ def cancel_email_change():
|
||||||
@dashboard_bp.route("/unlink_proton_account", methods=["GET", "POST"])
|
@dashboard_bp.route("/unlink_proton_account", methods=["GET", "POST"])
|
||||||
@login_required
|
@login_required
|
||||||
def unlink_proton_account():
|
def unlink_proton_account():
|
||||||
|
proton_partner = get_proton_partner()
|
||||||
partner_user = PartnerUser.get_by(
|
partner_user = PartnerUser.get_by(
|
||||||
user_id=current_user.id, partner_id=get_proton_partner().id
|
user_id=current_user.id, partner_id=proton_partner.id
|
||||||
)
|
)
|
||||||
if partner_user is not None:
|
if partner_user is not None:
|
||||||
PartnerUser.delete(partner_user.id)
|
PartnerUser.delete(partner_user.id)
|
||||||
Session.commit()
|
Session.commit()
|
||||||
flash("Your Proton account has been unlinked", "success")
|
flash("Your Proton account has been unlinked", "success")
|
||||||
|
agent.record_custom_event("AccountUnlinked", {"partner": proton_partner.name})
|
||||||
return redirect(url_for("dashboard.setting"))
|
return redirect(url_for("dashboard.setting"))
|
||||||
|
|
Loading…
Reference in New Issue