Feat: get and put tribes api
This commit is contained in:
35
backend/api/main.py
Normal file
35
backend/api/main.py
Normal file
@@ -0,0 +1,35 @@
|
||||
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
|
||||
|
||||
orm.start_mappers()
|
||||
engine = create_engine("sqlite:///:memory:")
|
||||
orm.metadata.create_all(engine)
|
||||
get_session = sessionmaker(bind=engine)
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.put("/tribes")
|
||||
async def put_tribe(item: TribeModel, status_code=201):
|
||||
tribe = Tribe(**item.dict())
|
||||
|
||||
session = get_session()
|
||||
session.add(tribe)
|
||||
session.commit()
|
||||
tribes = session.query(Tribe).all()
|
||||
|
||||
return {}
|
||||
|
||||
|
||||
@app.get("/tribes")
|
||||
async def get_tribes(response_model=list[TribeModel]):
|
||||
|
||||
session = get_session()
|
||||
tribes = session.query(Tribe).all()
|
||||
|
||||
return [t.to_dict() for t in tribes]
|
8
backend/api/model.py
Normal file
8
backend/api/model.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class TribeModel(BaseModel):
|
||||
name: str
|
||||
level: str
|
||||
students: list = []
|
||||
assessments: list = []
|
Reference in New Issue
Block a user