feat: implemented api, implemented creating driver and vehicle entity, added db models for entities

This commit is contained in:
2025-01-04 23:16:42 +01:00
parent 2f86b4c434
commit c4de1d11ec
7 changed files with 179 additions and 30 deletions

29
class/driverHandler.py Normal file
View File

@ -0,0 +1,29 @@
from sqlalchemy.orm import Session
from 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):
# makes sure that a name always is provided
if not name:
raise ValueError("name is empty")
self.__dbSession.add(Driver(name=name))
self.__dbSession.commit()
pass
# handles getting a driver by its id from the database
def getDriver(self, id:int):
pass
# handles getting all drivers from the database
def getDrivers(self):
pass

View File

@ -1,5 +1,6 @@
import gpxpy
import gpxpy.gpx
from sqlalchemy.orm import Session
class GPXHandler:
__dbSession: Session
@ -16,7 +17,7 @@ class GPXHandler:
# handles a route from db and converting it into geoJSON
def getRoute(self, route):
pass
# handles storing a route in db
def saveInDB():
# handles calculating the distance between two points
def calcDist(self, p1, p2):
pass

View File

@ -16,8 +16,8 @@ class Track(Base):
__tablename__ = 'track'
id = Column(Integer, primary_key=True, autoincrement=True)
trackName = Column(String(200), nullable=True)
vehicle = Column(Integer, ForeignKey('vehicle.id'), nullable=False)
driver = Column(Integer, ForeignKey('driver.id'), nullable=False)
vehicle = Column(Integer, ForeignKey('vehicle.id'), nullable=False, default=1)
driver = Column(Integer, ForeignKey('driver.id'), nullable=False, default=1)
date = Column(Date, nullable=True)
distance = Column(Float, nullable=False, default=0)
speed = Column(Float, nullable=False, default=0)

30
class/vehicleHandler.py Normal file
View File

@ -0,0 +1,30 @@
from sqlalchemy.orm import Session
from geoObjects import Vehicle
class VehicleHandler:
__dbSession: Session
def __init__(self, session:Session):
self.__dbSession = session
pass
# handles creating a vehicle and storing it in the database
def createVehicle(self, name:str, type:str):
if not name:
raise ValueError("name is empty")
if not type:
raise ValueError("vehicle is empty")
self.__dbSession.add(Vehicle(name, type))
self.__dbSession.commit()
pass
# handles getting a vehicle identified with its id from the database
def getVehicle(self, id:int):
pass
# handles getting all vehicles from database
def getVehicles(self):
pass