📝 Update ModelRead to ModelPublic documentation and examples (#885)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
Esteban Maya
2024-04-08 18:07:48 -05:00
committed by GitHub
parent fa79856a4b
commit 1eb40b1f33
68 changed files with 427 additions and 427 deletions

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -52,7 +52,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -61,7 +61,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -72,7 +72,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -80,7 +80,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -50,7 +50,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -59,7 +59,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -70,7 +70,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -78,7 +78,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -52,7 +52,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -61,7 +61,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -72,7 +72,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -80,7 +80,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -47,7 +47,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -57,14 +57,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -73,7 +73,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -45,7 +45,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -55,14 +55,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -71,7 +71,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -47,7 +47,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -57,14 +57,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -73,7 +73,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,14 +51,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -39,7 +39,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -49,14 +49,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,14 +51,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -17,7 +17,7 @@ class HeroCreate(SQLModel):
age: Optional[int] = None
class HeroRead(SQLModel):
class HeroPublic(SQLModel):
id: int
name: str
secret_name: str
@ -43,7 +43,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -53,7 +53,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -15,7 +15,7 @@ class HeroCreate(SQLModel):
age: int | None = None
class HeroRead(SQLModel):
class HeroPublic(SQLModel):
id: int
name: str
secret_name: str
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,7 +51,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -17,7 +17,7 @@ class HeroCreate(SQLModel):
age: Optional[int] = None
class HeroRead(SQLModel):
class HeroPublic(SQLModel):
id: int
name: str
secret_name: str
@ -43,7 +43,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -53,7 +53,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,7 +51,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -39,7 +39,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -49,7 +49,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,7 +51,7 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,14 +51,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -39,7 +39,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -49,14 +49,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -41,7 +41,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -51,14 +51,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes():
with Session(engine) as session:
heroes = session.exec(select(Hero)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)

View File

@ -19,7 +19,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -43,7 +43,7 @@ class Hero(HeroBase, table=True):
team: Optional[Team] = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -58,12 +58,12 @@ class HeroUpdate(SQLModel):
team_id: Optional[int] = None
class HeroReadWithTeam(HeroRead):
team: Optional[TeamRead] = None
class HeroPublicWithTeam(HeroPublic):
team: Optional[TeamPublic] = None
class TeamReadWithHeroes(TeamRead):
heroes: List[HeroRead] = []
class TeamPublicWithHeroes(TeamPublic):
heroes: List[HeroPublic] = []
sqlite_file_name = "database.db"
@ -90,7 +90,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -99,7 +99,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -110,7 +110,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroReadWithTeam)
@app.get("/heroes/{hero_id}", response_model=HeroPublicWithTeam)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -118,7 +118,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -144,7 +144,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -153,7 +153,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=List[TeamRead])
@app.get("/teams/", response_model=List[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -164,7 +164,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamReadWithHeroes)
@app.get("/teams/{team_id}", response_model=TeamPublicWithHeroes)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -172,7 +172,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -17,7 +17,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -41,7 +41,7 @@ class Hero(HeroBase, table=True):
team: Team | None = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -56,12 +56,12 @@ class HeroUpdate(SQLModel):
team_id: int | None = None
class HeroReadWithTeam(HeroRead):
team: TeamRead | None = None
class HeroPublicWithTeam(HeroPublic):
team: TeamPublic | None = None
class TeamReadWithHeroes(TeamRead):
heroes: list[HeroRead] = []
class TeamPublicWithHeroes(TeamPublic):
heroes: list[HeroPublic] = []
sqlite_file_name = "database.db"
@ -88,7 +88,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -97,7 +97,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -108,7 +108,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroReadWithTeam)
@app.get("/heroes/{hero_id}", response_model=HeroPublicWithTeam)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -116,7 +116,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -142,7 +142,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -151,7 +151,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=list[TeamRead])
@app.get("/teams/", response_model=list[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -162,7 +162,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamReadWithHeroes)
@app.get("/teams/{team_id}", response_model=TeamPublicWithHeroes)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -170,7 +170,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -19,7 +19,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -43,7 +43,7 @@ class Hero(HeroBase, table=True):
team: Optional[Team] = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -58,12 +58,12 @@ class HeroUpdate(SQLModel):
team_id: Optional[int] = None
class HeroReadWithTeam(HeroRead):
team: Optional[TeamRead] = None
class HeroPublicWithTeam(HeroPublic):
team: Optional[TeamPublic] = None
class TeamReadWithHeroes(TeamRead):
heroes: list[HeroRead] = []
class TeamPublicWithHeroes(TeamPublic):
heroes: list[HeroPublic] = []
sqlite_file_name = "database.db"
@ -90,7 +90,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -99,7 +99,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -110,7 +110,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroReadWithTeam)
@app.get("/heroes/{hero_id}", response_model=HeroPublicWithTeam)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -118,7 +118,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -144,7 +144,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -153,7 +153,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=list[TeamRead])
@app.get("/teams/", response_model=list[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -164,7 +164,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamReadWithHeroes)
@app.get("/teams/{team_id}", response_model=TeamPublicWithHeroes)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -172,7 +172,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -52,7 +52,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -61,7 +61,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -72,7 +72,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -80,7 +80,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -50,7 +50,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -59,7 +59,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -70,7 +70,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -78,7 +78,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -52,7 +52,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -61,7 +61,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -72,7 +72,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -80,7 +80,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):

View File

@ -19,7 +19,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -42,7 +42,7 @@ class Hero(HeroBase, table=True):
team: Optional[Team] = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -81,7 +81,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -90,7 +90,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -101,7 +101,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -109,7 +109,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -135,7 +135,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -144,7 +144,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=List[TeamRead])
@app.get("/teams/", response_model=List[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -155,7 +155,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamRead)
@app.get("/teams/{team_id}", response_model=TeamPublic)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -163,7 +163,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -17,7 +17,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -40,7 +40,7 @@ class Hero(HeroBase, table=True):
team: Team | None = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -79,7 +79,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -88,7 +88,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -99,7 +99,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -107,7 +107,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -133,7 +133,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -142,7 +142,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=list[TeamRead])
@app.get("/teams/", response_model=list[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -153,7 +153,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamRead)
@app.get("/teams/{team_id}", response_model=TeamPublic)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -161,7 +161,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -19,7 +19,7 @@ class TeamCreate(TeamBase):
pass
class TeamRead(TeamBase):
class TeamPublic(TeamBase):
id: int
@ -42,7 +42,7 @@ class Hero(HeroBase, table=True):
team: Optional[Team] = Relationship(back_populates="heroes")
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -81,7 +81,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
db_hero = Hero.model_validate(hero)
session.add(db_hero)
@ -90,7 +90,7 @@ def create_hero(*, session: Session = Depends(get_session), hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(
*,
session: Session = Depends(get_session),
@ -101,7 +101,7 @@ def read_heroes(
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(*, session: Session = Depends(get_session), hero_id: int):
hero = session.get(Hero, hero_id)
if not hero:
@ -109,7 +109,7 @@ def read_hero(*, session: Session = Depends(get_session), hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(
*, session: Session = Depends(get_session), hero_id: int, hero: HeroUpdate
):
@ -135,7 +135,7 @@ def delete_hero(*, session: Session = Depends(get_session), hero_id: int):
return {"ok": True}
@app.post("/teams/", response_model=TeamRead)
@app.post("/teams/", response_model=TeamPublic)
def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
db_team = Team.model_validate(team)
session.add(db_team)
@ -144,7 +144,7 @@ def create_team(*, session: Session = Depends(get_session), team: TeamCreate):
return db_team
@app.get("/teams/", response_model=list[TeamRead])
@app.get("/teams/", response_model=list[TeamPublic])
def read_teams(
*,
session: Session = Depends(get_session),
@ -155,7 +155,7 @@ def read_teams(
return teams
@app.get("/teams/{team_id}", response_model=TeamRead)
@app.get("/teams/{team_id}", response_model=TeamPublic)
def read_team(*, team_id: int, session: Session = Depends(get_session)):
team = session.get(Team, team_id)
if not team:
@ -163,7 +163,7 @@ def read_team(*, team_id: int, session: Session = Depends(get_session)):
return team
@app.patch("/teams/{team_id}", response_model=TeamRead)
@app.patch("/teams/{team_id}", response_model=TeamPublic)
def update_team(
*,
session: Session = Depends(get_session),

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -47,7 +47,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -57,14 +57,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -73,7 +73,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -16,7 +16,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -45,7 +45,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -55,14 +55,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -71,7 +71,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -18,7 +18,7 @@ class HeroCreate(HeroBase):
pass
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -47,7 +47,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
with Session(engine) as session:
db_hero = Hero.model_validate(hero)
@ -57,14 +57,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -73,7 +73,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -19,7 +19,7 @@ class HeroCreate(HeroBase):
password: str
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -54,7 +54,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
hashed_password = hash_password(hero.password)
with Session(engine) as session:
@ -66,14 +66,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=List[HeroRead])
@app.get("/heroes/", response_model=List[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -82,7 +82,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -17,7 +17,7 @@ class HeroCreate(HeroBase):
password: str
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -52,7 +52,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
hashed_password = hash_password(hero.password)
with Session(engine) as session:
@ -64,14 +64,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -80,7 +80,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)

View File

@ -19,7 +19,7 @@ class HeroCreate(HeroBase):
password: str
class HeroRead(HeroBase):
class HeroPublic(HeroBase):
id: int
@ -54,7 +54,7 @@ def on_startup():
create_db_and_tables()
@app.post("/heroes/", response_model=HeroRead)
@app.post("/heroes/", response_model=HeroPublic)
def create_hero(hero: HeroCreate):
hashed_password = hash_password(hero.password)
with Session(engine) as session:
@ -66,14 +66,14 @@ def create_hero(hero: HeroCreate):
return db_hero
@app.get("/heroes/", response_model=list[HeroRead])
@app.get("/heroes/", response_model=list[HeroPublic])
def read_heroes(offset: int = 0, limit: int = Query(default=100, le=100)):
with Session(engine) as session:
heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()
return heroes
@app.get("/heroes/{hero_id}", response_model=HeroRead)
@app.get("/heroes/{hero_id}", response_model=HeroPublic)
def read_hero(hero_id: int):
with Session(engine) as session:
hero = session.get(Hero, hero_id)
@ -82,7 +82,7 @@ def read_hero(hero_id: int):
return hero
@app.patch("/heroes/{hero_id}", response_model=HeroRead)
@app.patch("/heroes/{hero_id}", response_model=HeroPublic)
def update_hero(hero_id: int, hero: HeroUpdate):
with Session(engine) as session:
db_hero = session.get(Hero, hero_id)