Fix bulk delete foreign key constraints and bulk upload phone unique constraint
This commit is contained in:
@@ -231,7 +231,7 @@ def change_password(payload: ChangePasswordRequest, session: Session = Depends(g
|
|||||||
async def bulk_register_students(file: UploadFile = File(...), session: Session = Depends(get_session)):
|
async def bulk_register_students(file: UploadFile = File(...), session: Session = Depends(get_session)):
|
||||||
# Simple check for now (we can rely on frontend calling it correctly or auth middleware if we add it)
|
# Simple check for now (we can rely on frontend calling it correctly or auth middleware if we add it)
|
||||||
content = await file.read()
|
content = await file.read()
|
||||||
decoded = content.decode('utf-8')
|
decoded = content.decode('utf-8-sig')
|
||||||
csv_reader = csv.DictReader(io.StringIO(decoded))
|
csv_reader = csv.DictReader(io.StringIO(decoded))
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
@@ -267,7 +267,7 @@ async def bulk_register_students(file: UploadFile = File(...), session: Session
|
|||||||
user = models.User(
|
user = models.User(
|
||||||
email=email,
|
email=email,
|
||||||
name=name,
|
name=name,
|
||||||
phone=phone,
|
phone=phone if phone else None,
|
||||||
password_hash=hashed_password,
|
password_hash=hashed_password,
|
||||||
target_exam=exam,
|
target_exam=exam,
|
||||||
tier=tier,
|
tier=tier,
|
||||||
@@ -297,6 +297,9 @@ def bulk_delete_students(payload: DeleteUsersRequest, session: Session = Depends
|
|||||||
# Delete associated records manually since foreign key cascade might not be configured in sqlmodel by default
|
# Delete associated records manually since foreign key cascade might not be configured in sqlmodel by default
|
||||||
session.exec(delete(models.Attempt).where(models.Attempt.user_id == uid))
|
session.exec(delete(models.Attempt).where(models.Attempt.user_id == uid))
|
||||||
session.exec(delete(models.Mistake).where(models.Mistake.user_id == uid))
|
session.exec(delete(models.Mistake).where(models.Mistake.user_id == uid))
|
||||||
|
session.exec(delete(models.Transaction).where(models.Transaction.user_id == uid))
|
||||||
|
session.exec(delete(models.Subscription).where(models.Subscription.user_id == uid))
|
||||||
|
session.exec(delete(models.StudyPlan).where(models.StudyPlan.user_id == uid))
|
||||||
session.delete(user)
|
session.delete(user)
|
||||||
session.commit()
|
session.commit()
|
||||||
return {"success": True}
|
return {"success": True}
|
||||||
|
|||||||
Reference in New Issue
Block a user