Fix AI Coach typo, fix bulk register UI, and update exam tiers
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from fastapi import FastAPI, Depends, HTTPException, status, Request, UploadFile, File, Form, BackgroundTasks
|
||||
from fastapi.responses import StreamingResponse
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from sqlmodel import Session, select
|
||||
from sqlmodel import Session, select, delete
|
||||
from contextlib import asynccontextmanager
|
||||
from typing import List, Dict, Any, Optional
|
||||
from uuid import UUID
|
||||
@@ -286,6 +286,21 @@ async def bulk_register_students(file: UploadFile = File(...), session: Session
|
||||
session.commit()
|
||||
return results
|
||||
|
||||
class DeleteUsersRequest(BaseModel):
|
||||
user_ids: List[UUID]
|
||||
|
||||
@app.delete("/api/admin/students/bulk", tags=["Admin"])
|
||||
def bulk_delete_students(payload: DeleteUsersRequest, session: Session = Depends(get_session)):
|
||||
for uid in payload.user_ids:
|
||||
user = session.get(models.User, uid)
|
||||
if user:
|
||||
# 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.Mistake).where(models.Mistake.user_id == uid))
|
||||
session.delete(user)
|
||||
session.commit()
|
||||
return {"success": True}
|
||||
|
||||
@app.post("/api/auth/register", tags=["Authentication"])
|
||||
def register(payload: RegisterPayload, session: Session = Depends(get_session)):
|
||||
import bcrypt
|
||||
|
||||
Reference in New Issue
Block a user