from fastapi import APIRouter, HTTPException, status
from schemas.user_schema import UserAuth, UserDetail
from services.user_service import UserService
import pymongo
user_router = APIRouter()
@user_router.post('/adiciona', summary='Adiciona Usuário', response_model=UserDetail)
async def adiciona_usuario(data:UserAuth):
try:
return await UserService.create_user(data)
except pymongo.errors.DuplicateKeyError:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail='Username ou e-mail deste usuário já existe'
)
from pydantic import BaseModel, EmailStr, Field
from uuid import UUID
class UserAuth(BaseModel):
email: EmailStr = Field(..., description='E-mail do Usuário')
username: str = Field(
...,
min_length=5,
max_length=50,
description='Username'
)
password: str = Field(
...,
min_length=5,
max_length=20,
description='Senha do Usuário'
)
class UserDetail(BaseModel):
user_id: UUID
username: str
email: str