Prechádzať zdrojové kódy

WIP send user onboarding email 1day after the account creation

Son NK 5 rokov pred
rodič
commit
0f4e803639
3 zmenil súbory, kde vykonal 18 pridanie a 4 odobranie
  1. 15 1
      app/models.py
  2. 2 0
      cron.py
  3. 1 3
      job_runner.py

+ 15 - 1
app/models.py

@@ -10,7 +10,13 @@ from sqlalchemy import text, desc
 from sqlalchemy_utils import ArrowType
 
 from app import s3
-from app.config import EMAIL_DOMAIN, MAX_NB_EMAIL_FREE_PLAN, URL, AVATAR_URL_EXPIRATION
+from app.config import (
+    EMAIL_DOMAIN,
+    MAX_NB_EMAIL_FREE_PLAN,
+    URL,
+    AVATAR_URL_EXPIRATION,
+    JOB_ONBOARDING_1,
+)
 from app.email_utils import get_email_name
 from app.extensions import db
 from app.log import LOG
@@ -144,6 +150,14 @@ class User(db.Model, ModelMixin, UserMixin):
         GenEmail.create_new(user.id, prefix="my-first-alias")
         db.session.flush()
 
+        # Schedule onboarding emails
+        Job.create(
+            name=JOB_ONBOARDING_1,
+            payload={"user_id": user.id},
+            run_at=arrow.now().shift(days=1),
+        )
+        db.session.flush()
+
         return user
 
     def lifetime_or_active_subscription(self) -> bool:

+ 2 - 0
cron.py

@@ -122,6 +122,8 @@ if __name__ == "__main__":
 
     with app.app_context():
         if args.job == "stats":
+            LOG.d("Compute stats")
             stats()
         elif args.job == "notify_trial_end":
+            LOG.d("Notify users with trial ending soon")
             notify_trial_end()

+ 1 - 3
job_runner.py

@@ -6,9 +6,7 @@ import time
 
 import arrow
 
-from app.config import (
-    JOB_ONBOARDING_1,
-)
+from app.config import JOB_ONBOARDING_1
 from app.email_utils import (
     send_email,
     render,