diff --git a/src/data_connection.py b/src/data_connection.py index 160ff3c..7b24a9c 100644 --- a/src/data_connection.py +++ b/src/data_connection.py @@ -28,4 +28,10 @@ def get_single_product(barcode: int) -> product_classes.Product: return product def create_db_and_tables() -> None: - db_connection.create_db_and_tables() \ No newline at end of file + db_connection.create_db_and_tables() + +def get_db_engine(): + return db_connection.get_engine() + +def delete_database(): + db_connection.delete_database() \ No newline at end of file diff --git a/src/main.py b/src/main.py index cb378b5..98bea47 100644 --- a/src/main.py +++ b/src/main.py @@ -3,6 +3,7 @@ from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse import os from contextlib import asynccontextmanager +from sqlmodel import Session from src.classes import product_classes, cash_classes, user_classes @@ -11,10 +12,23 @@ from src.modules import price_to_cash_calculator from shop_validators import image_validator from src import data_connection +async def get_session(): + with Session(data_connection.get_db_engine()) as session: + yield session + +def create_test_data(): + user_1 = user_classes.UserInDB(username="yarninator", email="yarn@inator.com",full_name="Yarn Inator", disabled=False, hashed_password="abcdefghijklmnop") + with Session(data_connection.get_db_engine()) as session: + session.add(user_1) + session.commit() + + @asynccontextmanager async def lifespan(app: FastAPI): # Startup + data_connection.delete_database() data_connection.create_db_and_tables() + create_test_data() yield # Shutdown diff --git a/src/modules/db_connection.py b/src/modules/db_connection.py index 9ce784b..56ab8dc 100644 --- a/src/modules/db_connection.py +++ b/src/modules/db_connection.py @@ -11,4 +11,7 @@ def get_engine(): return engine def create_db_and_tables() -> None: - SQLModel.metadata.create_all(engine) \ No newline at end of file + SQLModel.metadata.create_all(engine) + +def delete_database(): + SQLModel.metadata.drop_all(engine) \ No newline at end of file