fix(demo & streak): fix Neha demo account hang, enhance streak animation for light/dark modes and cries/celebration emojis
This commit is contained in:
@@ -660,7 +660,7 @@ DEMO_DEFINITIONS = {
|
||||
},
|
||||
UUID("33333333-3333-3333-3333-333333333333"): {
|
||||
"name": "Neha Verma",
|
||||
"email": "demo@pragativeer.com",
|
||||
"email": "neha.demo@pragativeer.com",
|
||||
"phone": "9999999997",
|
||||
"student_class": models.ClassEnum.TWELFTH,
|
||||
"medium": models.MediumEnum.ENGLISH,
|
||||
@@ -708,18 +708,30 @@ def ensure_demo_user(user_id: UUID, session: Session) -> Optional[models.User]:
|
||||
if user:
|
||||
return user
|
||||
if user_id in DEMO_DEFINITIONS:
|
||||
data = DEMO_DEFINITIONS[user_id]
|
||||
data = DEMO_DEFINITIONS[user_id].copy()
|
||||
import bcrypt
|
||||
new_demo = models.User(
|
||||
id=user_id,
|
||||
password_hash=bcrypt.hashpw("Pv9#kL2$mQ8!vX4@".encode('utf-8'), bcrypt.gensalt()).decode('utf-8'),
|
||||
last_active=datetime.utcnow(),
|
||||
**data
|
||||
)
|
||||
session.add(new_demo)
|
||||
session.commit()
|
||||
session.refresh(new_demo)
|
||||
return new_demo
|
||||
try:
|
||||
# Defensive duplicate check
|
||||
existing_email = session.exec(select(models.User).where(models.User.email == data["email"])).first()
|
||||
if existing_email and existing_email.id != user_id:
|
||||
data["email"] = f"demo_{str(user_id)[:8]}@pragativeer.com"
|
||||
existing_phone = session.exec(select(models.User).where(models.User.phone == data["phone"])).first()
|
||||
if existing_phone and existing_phone.id != user_id:
|
||||
data["phone"] = f"99{str(int(user_id.int))[-8:]}"
|
||||
|
||||
new_demo = models.User(
|
||||
id=user_id,
|
||||
password_hash=bcrypt.hashpw("Pv9#kL2$mQ8!vX4@".encode('utf-8'), bcrypt.gensalt()).decode('utf-8'),
|
||||
last_active=datetime.utcnow(),
|
||||
**data
|
||||
)
|
||||
session.add(new_demo)
|
||||
session.commit()
|
||||
session.refresh(new_demo)
|
||||
return new_demo
|
||||
except Exception:
|
||||
session.rollback()
|
||||
return session.get(models.User, user_id)
|
||||
return None
|
||||
|
||||
@app.get("/api/user/switch", tags=["Users"])
|
||||
|
||||
Reference in New Issue
Block a user