1. Nessa aula vamos criar um schema específico para o output do cadastro de usuários.
  2. Vamos criar o arquivo user.py e adicionar o seguinte código:
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'
        )
3 - Agora precisamos adicionar o novo schema no arquivo user_schema.py
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