fix: 🐛 fixed driver and vehicle apis, swapped dbms to postgres and refactored project structure
This commit is contained in:
58
modules/driverHandler.py
Normal file
58
modules/driverHandler.py
Normal 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}")
|
Reference in New Issue
Block a user