Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions workout_api/atleta/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session
from database import get_db
from schemas import Atleta, AtletaBase
from models import Atleta as AtletaModel
from typing import List
from sqlalchemy import or_

router = APIRouter()

@router.get("/atletas", response_model=List[Atleta])
def get_atletas(
nome: str = Query(None, description="Filtrar por nome"),
cpf: str = Query(None, description="Filtrar por CPF"),
db: Session = Depends(get_db)
):
query = db.query(AtletaModel)
if nome:
query = query.filter(AtletaModel.nome.ilike(f"%{nome}%"))
if cpf:
query = query.filter(AtletaModel.cpf == cpf)
return query.all()
5 changes: 5 additions & 0 deletions workout_api/atleta/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
from sqlalchemy.future import select

router = APIRouter()
from schemas import AtletaResumo

@router.get("/atletas/resumo", response_model=List[AtletaResumo])
def get_atletas_resumo(db: Session = Depends(get_db)):
return db.query(AtletaModel).all()

@router.post(
'/',
Expand Down
9 changes: 9 additions & 0 deletions workout_api/atleta/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@

from workout_api.contrib.schemas import BaseSchema, OutMixin

from pydantic import BaseModel

class AtletaResumo(BaseModel):
nome: str
centro_treinamento: str
categoria: str

class Config:
orm_mode = True

class Atleta(BaseSchema):
nome: Annotated[str, Field(description='Nome do atleta', example='Joao', max_length=50)]
Expand Down
7 changes: 7 additions & 0 deletions workout_api/main.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
from fastapi import FastAPI
from workout_api.routers import api_router
from fastapi import FastAPI
from fastapi_pagination import add_pagination

app = FastAPI()

# seus includes de routers...
add_pagination(app)

app = FastAPI(title='WorkoutApi')
app.include_router(api_router)