Files
social-app/backend/src/v1/auth/router.py
T

50 lines
1.2 KiB
Python
Raw Normal View History

from __future__ import annotations
from fastapi import APIRouter, Depends, Response
from v1.auth.dependencies import get_auth_service
from v1.auth.models import (
AuthTokenResponse,
LoginRequest,
LogoutRequest,
RefreshRequest,
SignupRequest,
)
from v1.auth.service import AuthService
router = APIRouter(prefix="/auth", tags=["auth"])
@router.post("/signup", response_model=AuthTokenResponse)
async def signup(
payload: SignupRequest,
service: AuthService = Depends(get_auth_service),
) -> AuthTokenResponse:
return await service.signup(payload)
@router.post("/login", response_model=AuthTokenResponse)
async def login(
payload: LoginRequest,
service: AuthService = Depends(get_auth_service),
) -> AuthTokenResponse:
return await service.login(payload)
@router.post("/refresh", response_model=AuthTokenResponse)
async def refresh(
payload: RefreshRequest,
service: AuthService = Depends(get_auth_service),
) -> AuthTokenResponse:
return await service.refresh(payload)
@router.post("/logout", status_code=204)
async def logout(
payload: LogoutRequest,
service: AuthService = Depends(get_auth_service),
) -> Response:
await service.logout(payload.refresh_token)
return Response(status_code=204)