Spaces:
Paused
Paused
Download apps/api/src/app/routes/setup.py from nathycodes/presentercoach: direct link, hf CLI and curl.
- Browser
- Download file 1.2 kB
-
https://huggingface.co/spaces/nathycodes/presentercoach/resolve/main/apps/api/src/app/routes/setup.py
- Command line
-
hf download hf://spaces/nathycodes/presentercoach/apps/api/src/app/routes/setup.py
-
curl -L -o setup.py https://huggingface.co/spaces/nathycodes/presentercoach/resolve/main/apps/api/src/app/routes/setup.py
1.2 kB
| from fastapi import APIRouter, Depends, HTTPException, Response, status | |
| from sqlalchemy.orm import Session | |
| from app import models, schemas | |
| from app.auth import hash_password, issue_token_pair | |
| from app.db import get_db | |
| from app.rate_limit import rate_limit | |
| router = APIRouter(prefix="/setup", tags=["setup"]) | |
| def setup_status(db: Session = Depends(get_db)): | |
| user_exists = db.query(models.User.id).first() is not None | |
| return {"setup_required": not user_exists} | |
| def initial_setup(payload: schemas.UserCreate, response: Response, db: Session = Depends(get_db)): | |
| user_exists = db.query(models.User.id).first() is not None | |
| if user_exists: | |
| raise HTTPException(status_code=status.HTTP_409_CONFLICT, detail="Setup already completed") | |
| user = models.User( | |
| email=payload.email, | |
| hashed_password=hash_password(payload.password), | |
| is_admin=True, | |
| ) | |
| db.add(user) | |
| db.commit() | |
| db.refresh(user) | |
| return issue_token_pair(db, response, user) | |