Feat: add response error when tribe already exists

This commit is contained in:
2022-12-29 07:23:02 +01:00
parent ccf1655cf4
commit febe686688
3 changed files with 51 additions and 2 deletions

View File

@@ -1,13 +1,17 @@
import sqlite3
from fastapi import FastAPI, status
from fastapi.responses import JSONResponse
from backend.adapters.sqlite import create_db
from backend.api.model import StudentModel, TribeModel
from backend.model.student import Student
from backend.model.tribe import Tribe
from backend.repository.student_sqlite_repository import StudentSQLiteRepository
from backend.repository.tribe_sqlite_repository import TribeSQLiteRepository
from backend.repository.tribe_sqlite_repository import (
TribeRepositoryError,
TribeSQLiteRepository,
)
# from sqlalchemy import create_engine
# from sqlalchemy.orm import clear_mappers, sessionmaker
@@ -33,7 +37,13 @@ app = FastAPI()
async def post_tribe(item: TribeModel):
tribe = Tribe(**item.dict())
tribe_repo.add(tribe)
try:
tribe_repo.add(tribe)
except TribeRepositoryError:
return JSONResponse(
status_code=status.HTTP_409_CONFLICT,
content=f"The tribe {tribe.name} already exists",
)
conn.commit()
return tribe.to_dict()