diff --git a/server/src/app/__pycache__/main.cpython-311.pyc b/server/src/app/__pycache__/main.cpython-311.pyc index eec9226..89ef8a4 100644 Binary files a/server/src/app/__pycache__/main.cpython-311.pyc and b/server/src/app/__pycache__/main.cpython-311.pyc differ diff --git a/server/src/app/api/__init__.py b/server/src/app/api/__init__.py new file mode 100644 index 0000000..0b6c856 --- /dev/null +++ b/server/src/app/api/__init__.py @@ -0,0 +1,6 @@ +from fastapi import APIRouter + +from ..api.v1 import router as v1_router + +router = APIRouter(prefix="/api") +router.include_router(v1_router) diff --git a/server/src/app/api/__pycache__/__init__.cpython-311.pyc b/server/src/app/api/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..d9e6cb5 Binary files /dev/null and b/server/src/app/api/__pycache__/__init__.cpython-311.pyc differ diff --git a/server/src/app/api/v1/__init__.py b/server/src/app/api/v1/__init__.py new file mode 100644 index 0000000..8204fd4 --- /dev/null +++ b/server/src/app/api/v1/__init__.py @@ -0,0 +1,8 @@ +from fastapi import APIRouter + +from .knowledges import router as knowledge_router +from .metrics import router as metric_router + +router = APIRouter(prefix="/v1") +router.include_router(knowledge_router) +router.include_router(metric_router) \ No newline at end of file diff --git a/server/src/app/api/v1/__pycache__/__init__.cpython-311.pyc b/server/src/app/api/v1/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..8c3a1b4 Binary files /dev/null and b/server/src/app/api/v1/__pycache__/__init__.cpython-311.pyc differ diff --git a/server/src/app/api/v1/__pycache__/knowledges.cpython-311.pyc b/server/src/app/api/v1/__pycache__/knowledges.cpython-311.pyc new file mode 100644 index 0000000..ed01046 Binary files /dev/null and b/server/src/app/api/v1/__pycache__/knowledges.cpython-311.pyc differ diff --git a/server/src/app/api/v1/__pycache__/metrics.cpython-311.pyc b/server/src/app/api/v1/__pycache__/metrics.cpython-311.pyc new file mode 100644 index 0000000..0be0f2d Binary files /dev/null and b/server/src/app/api/v1/__pycache__/metrics.cpython-311.pyc differ diff --git a/server/src/app/api/v1/knowledges.py b/server/src/app/api/v1/knowledges.py new file mode 100644 index 0000000..a0170a6 --- /dev/null +++ b/server/src/app/api/v1/knowledges.py @@ -0,0 +1,51 @@ +from fastapi import APIRouter + +from src.app.models.knowledge import Knowledge +from src.app.crud.crud_knowledges import create_knowledge, read_knowledges, read_knowledge, update_knowledge, delete_knowledge +from src.app.crud.crud_questions import read_questions as read_questions_crud + +#Added in __ini__ +router = APIRouter(tags=["knowledges"]) + +@router.post("/knowledges/") +def create(knowledge: Knowledge): + created_knowledge = create_knowledge(knowledge) + # if created_knowledge is None: + # raise NotFoundException("Failed to create knowledge") + return created_knowledge + +@router.get("/knowledges/") +def read(): + knowledges = read_knowledges() + return knowledges + +@router.get("/knowledges/{id}") +def read(id: int): + knowledge = read_knowledge(id) + return knowledge + +#TODO: adapt with correct pattern +@router.post("/knowledges/{id}") +def update(id: int, content: str, uri: str): + knowledge = update_knowledge(id, content, uri) + return knowledge + +@router.delete("/knowledges/{id}") +def delete(id: int): + knowledge = delete_knowledge(id) + return knowledge + +#TODO: find pattern +@router.post("/knowledges/{id}/questions") +def create_questions(id: int): + #SLM Generation + #create_question() + return True + +@router.get("/knowledges/{id}/questions") +def read_questions(id: int): + knowledge: Knowledge = read_knowledge(id) + #questions = knowledge.questions + #TODO : refacto ? + questions = read_questions_crud(knowledge) + return questions \ No newline at end of file diff --git a/server/src/app/api/v1/metrics.py b/server/src/app/api/v1/metrics.py new file mode 100644 index 0000000..c4be00d --- /dev/null +++ b/server/src/app/api/v1/metrics.py @@ -0,0 +1,12 @@ +from fastapi import APIRouter + +from src.app.models.metric import Metric +from src.app.models.question import Question +from src.app.crud.crud_metrics import create_metric + +router = APIRouter(tags=["metrics"]) + +@router.post("/metrics/") +def create(question: Question): + created_metric: Metric = create_metric(question) + return created_metric diff --git a/server/src/app/crud/__pycache__/crud_knowledges.cpython-311.pyc b/server/src/app/crud/__pycache__/crud_knowledges.cpython-311.pyc index cd24307..0fe5fe6 100644 Binary files a/server/src/app/crud/__pycache__/crud_knowledges.cpython-311.pyc and b/server/src/app/crud/__pycache__/crud_knowledges.cpython-311.pyc differ diff --git a/server/src/app/crud/__pycache__/crud_metrics.cpython-311.pyc b/server/src/app/crud/__pycache__/crud_metrics.cpython-311.pyc index db7e475..ba6d79b 100644 Binary files a/server/src/app/crud/__pycache__/crud_metrics.cpython-311.pyc and b/server/src/app/crud/__pycache__/crud_metrics.cpython-311.pyc differ diff --git a/server/src/app/crud/__pycache__/crud_questions.cpython-311.pyc b/server/src/app/crud/__pycache__/crud_questions.cpython-311.pyc index eb76b0b..810ec6a 100644 Binary files a/server/src/app/crud/__pycache__/crud_questions.cpython-311.pyc and b/server/src/app/crud/__pycache__/crud_questions.cpython-311.pyc differ diff --git a/server/src/app/crud/crud_knowledges.py b/server/src/app/crud/crud_knowledges.py index edd06a5..1b64de5 100644 --- a/server/src/app/crud/crud_knowledges.py +++ b/server/src/app/crud/crud_knowledges.py @@ -1,3 +1,4 @@ +from fastapi import Depends from sqlmodel import Session, select from src.app.models.knowledge import Knowledge @@ -7,6 +8,7 @@ def create_knowledge(knowledge: Knowledge): with Session(engine) as session: session.add(knowledge) session.commit() + session.refresh(knowledge) return knowledge def read_knowledges(): diff --git a/server/src/app/crud/crud_metrics.py b/server/src/app/crud/crud_metrics.py index 781f21a..93b6ff2 100644 --- a/server/src/app/crud/crud_metrics.py +++ b/server/src/app/crud/crud_metrics.py @@ -8,6 +8,7 @@ def create_metric(metric: Metric): with Session(engine) as session: session.add(metric) session.commit() + session.refresh(metric) return metric def read_metrics(question): diff --git a/server/src/app/crud/crud_questions.py b/server/src/app/crud/crud_questions.py index a95f316..0b3443c 100644 --- a/server/src/app/crud/crud_questions.py +++ b/server/src/app/crud/crud_questions.py @@ -8,6 +8,7 @@ def create_question(question: Question): with Session(engine) as session: session.add(question) session.commit() + session.refresh(question) return question def read_questions(knowledge): diff --git a/server/src/app/main.py b/server/src/app/main.py index 2be1c3d..0befd10 100644 --- a/server/src/app/main.py +++ b/server/src/app/main.py @@ -7,6 +7,8 @@ from src.app.models.question import Question from src.app.models.knowledge import Knowledge from src.app.models.metric import Metric +from .api import router + #Test from src.app.faker_seed import faker @@ -15,12 +17,8 @@ from src.app.faker_seed import faker async def lifespan(app: FastAPI): #startup create_db_and_tables() - faker() yield #shutdown app = FastAPI(lifespan=lifespan) - -@app.get("/") -async def root(): - return {"message": "Hello World"} \ No newline at end of file +app.include_router(router) \ No newline at end of file