feat: implemented deleting tracks, drivers, vehicles with proper data correction

This commit is contained in:
2025-01-16 01:30:32 +01:00
parent 1df2b155f3
commit a88c9e5ff7
9 changed files with 337 additions and 152 deletions

59
app.py
View File

@@ -35,6 +35,22 @@ SessionFactory = sessionmaker(bind=engine)
session = SessionFactory()
create_table(engine)
print("pushing initial data if not already happened")
try:
defDriver = session.query(Driver).filter(id=1)
defVehicle = session.query(Vehicle).filter(id=1)
if not defDriver and not defVehicle:
defaultVehicle = Vehicle(id=1, name="default", licenseplate="default")
defaultDriver = Driver(id=1, name="default")
session.add(defaultVehicle)
session.add(defaultDriver)
session.commit()
session.flush()
except:
print("default data not pushed as already present")
session.flush()
print("initialize handlers")
gpxHandler = GPXHandler(session)
driverHandler = DriverHandler(session)
@@ -106,7 +122,16 @@ def getTrack():
app.logger.debug(f"fetching all tracks failed with error {e}")
return f"error {e}", 500
case "DELETE":
pass
data = request.get_json()
if "id" not in data:
return "no if found", 400
try:
gpxHandler.deleteTrack(data["id"])
return "track deleted", 200
except Exception as e:
return f"couldnt delete track due to error: {e}", 500
@app.route("/track/meta", methods=['GET'])
@@ -175,10 +200,20 @@ def handleDriverRoute():
except Exception as e:
app.logger.debug(f"creating drivers failed with error {e}")
return "error" + " " + str(e), 500
case "PUT":
pass
case "DELETE":
pass
data = request.get_json()
if "id" not in data:
return "no if found", 400
try:
if data["id"] == 1:
return "deleting defaults is forbidden", 400
driverHandler.deleteDriver(data["id"])
return "driver deleted", 200
except Exception as e:
return f"couldnt delete driver due to error: {e}", 500
@app.route("/vehicle", methods=['GET', 'POST', 'PUT', 'DELETE'])
@@ -230,10 +265,20 @@ def handleVehicleRoute():
except Exception as e:
app.logger.debug(f"creating vehicle with name {name} failed with error {e}")
return "error" + " " + str(e), 500
case "PUT":
pass
case "DELETE":
pass
data = request.get_json()
if "id" not in data:
return "no if found", 400
try:
if data["id"] == 1:
return "deleting defaults is forbidden", 400
vehicleHandler.deleteVehicle(data["id"])
return "vehicle deleted", 200
except Exception as e:
return f"couldnt delete vehicle due to error: {e}", 500
@app.route('/upload', methods=['POST'])