Feat: use Tribe repository in api
This commit is contained in:
parent
b3bb1f0cc8
commit
5735d344c5
@ -1,15 +1,17 @@
|
||||
from fastapi import FastAPI, status
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import clear_mappers, sessionmaker
|
||||
|
||||
import backend.adapters.orm as orm
|
||||
from backend.api.model import TribeModel
|
||||
from backend.model.tribe import Tribe
|
||||
from fastapi import FastAPI, status
|
||||
from backend.repository.tribe_sqlalchemy_repository import TribeSQLAlchemyRepository
|
||||
|
||||
orm.start_mappers()
|
||||
engine = create_engine("sqlite:///:memory:")
|
||||
orm.metadata.create_all(engine)
|
||||
get_session = sessionmaker(bind=engine)
|
||||
session = sessionmaker(bind=engine)()
|
||||
tribe_repo = TribeSQLAlchemyRepository(session)
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
@ -18,18 +20,21 @@ app = FastAPI()
|
||||
async def put_tribe(item: TribeModel):
|
||||
tribe = Tribe(**item.dict())
|
||||
|
||||
session = get_session()
|
||||
session.add(tribe)
|
||||
tribe_repo.add(tribe)
|
||||
session.commit()
|
||||
|
||||
return tribe.to_dict()
|
||||
|
||||
|
||||
@app.get("/tribes", response_model=list[TribeModel])
|
||||
async def get_tribes():
|
||||
|
||||
session = get_session()
|
||||
tribes = session.query(Tribe).all()
|
||||
print(tribes[0].__dict__)
|
||||
async def list_tribes():
|
||||
tribes = tribe_repo.list()
|
||||
|
||||
return [t.to_dict() for t in tribes]
|
||||
|
||||
|
||||
@app.get("/tribes/{name}", response_model=TribeModel)
|
||||
async def get_tribe(name: str):
|
||||
tribe = tribe_repo.get(name)
|
||||
|
||||
return tribe.to_dict()
|
||||
|
Loading…
Reference in New Issue
Block a user