diff --git a/backend/api/main.py b/backend/api/main.py index 0c24ce0..8dc7a79 100644 --- a/backend/api/main.py +++ b/backend/api/main.py @@ -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()