xiangqinxiaochengxu/backend/app/routers/admin/auth.py
2026-04-17 10:49:14 +08:00

18 lines
704 B
Python

from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_db
from app.schemas.admin import AdminLoginRequest, AdminLoginResponse
from app.services.admin_service import admin_login
router = APIRouter()
@router.post("/login")
async def login(payload: AdminLoginRequest, session: AsyncSession = Depends(get_db)) -> dict:
try:
data = await admin_login(session, payload.username, payload.password)
except ValueError as exc:
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(exc)) from exc
return {"code": 0, "message": "ok", "data": AdminLoginResponse(**data).model_dump()}