fix: 🐛 fixed driver and vehicle apis, swapped dbms to postgres and refactored project structure

This commit is contained in:
2025-01-08 22:42:09 +01:00
parent b40f4a0d02
commit d585c90a4e
12 changed files with 280 additions and 215 deletions

58
modules/driverHandler.py Normal file
View File

@ -0,0 +1,58 @@
from sqlalchemy.orm import Session
from modules.geoObjects import Driver
class DriverHandler:
dbSession: Session
def __init__(self, session: Session):
self.dbSession = session
pass
# handles creating a driver in the database
def createDriver(self, name: str) -> Driver:
try:
# makes sure that a name always is provided
if not name:
raise ValueError("name is empty")
driver = Driver(name=name)
self.dbSession.add(driver)
self.dbSession.commit()
return driver
except Exception as e:
raise RuntimeError(f"failed to create driver with errors{e}")
# handles getting a driver by its id from the database
def getDriver(self, driverID: int):
try:
driver = self.dbSession.query(Driver).filter_by(id=driverID).first()
return {
"id": driver.id,
"name": driver.name
}
except Exception as e:
raise RuntimeError(f"failed to get driver with errors{e}")
# handles getting all drivers from the database
def getDrivers(self):
try:
drivers = self.dbSession.query(Driver).all()
driverList = [
{
"id": driver.id,
"name": driver.name
}
# iterates all drivers and appends them to the list
for driver in drivers
]
return driverList
except Exception as e:
raise RuntimeError(f"failed to get drivers with errors{e}")