@@ -33,7 +33,6 @@ def create_fuelingtask( | |||
fuelingtask_res = create_fueling_task( | |||
fueling_task=fuelingtask, current_user=current_user.Id, db=db | |||
) | |||
print("Created FuelTask") | |||
if fuelingtask_res == "nodriver": | |||
raise HTTPException(status_code=404, detail="Driver ID not found") | |||
@@ -50,9 +50,7 @@ def create_carpart( | |||
raise HTTPException( | |||
status_code=403, detail="You are not authorized to perform this action" | |||
) | |||
print("So it begins...") | |||
car_part_res = create_car_part(car_part=car_part, db=db) | |||
print("So it ends...") | |||
return car_part_res | |||
@@ -88,7 +86,6 @@ def get_maintenancejob( | |||
raise HTTPException( | |||
status_code=404, detail="Maintenance job with this id does not exist" | |||
) | |||
print(maintenancejob) | |||
return maintenancejob | |||
@@ -170,7 +170,6 @@ def getMyRoutes( | |||
db: Session = Depends(get_db), | |||
current_user: User = Depends(get_current_user), | |||
): | |||
print("here") | |||
if current_user.Role != "Driver": | |||
raise HTTPException( | |||
status_code=403, | |||
@@ -106,7 +106,6 @@ def get_user_me( | |||
current_user: Annotated[User, Depends(get_current_user)], | |||
db: Annotated[Session, Depends(get_db)], | |||
): | |||
print("Getting current user...") | |||
return current_user | |||
@@ -25,7 +25,6 @@ async def create_vehicle( | |||
db: Session = Depends(get_db), | |||
current_user: User = Depends(get_current_user), | |||
): | |||
print(current_user.Role) | |||
if current_user.Role != "Admin": | |||
raise HTTPException( | |||
status_code=403, detail="You are not authorized to perform this action" | |||
@@ -132,7 +131,11 @@ def update_vehicle( | |||
db: Session = Depends(get_db), | |||
current_user: User = Depends(get_current_user), | |||
): | |||
if current_user.Role != "Admin" and current_user.Role != "Maintenance": | |||
if ( | |||
current_user.Role != "Admin" | |||
and current_user.Role != "Maintenance" | |||
and current_user.Role != "Fueling" | |||
): | |||
raise HTTPException( | |||
status_code=403, detail="You are not authorized to perform this action" | |||
) | |||
@@ -169,8 +172,6 @@ def update_vehicle_location( | |||
current_user: User = Depends(get_current_user), | |||
db: Session = Depends(get_db), | |||
): | |||
print(current_user) | |||
print(current_user.Name) | |||
if current_user.Role != "Driver" and current_user.Role != "Admin": | |||
raise HTTPException( | |||
status_code=403, detail="You are not authorized to perform this action" | |||
@@ -179,7 +180,6 @@ def update_vehicle_location( | |||
raise HTTPException( | |||
status_code=403, detail="You are not the correct car driver" | |||
) | |||
print("FUNNY") | |||
vehicle = update_vehicle_geoloc(vehicle_id=vehicle_id, location=location, db=db) | |||
if vehicle == "vehiclenotfound": | |||
raise HTTPException(status_code=404, detail="Vehicle not found") | |||
@@ -6,6 +6,7 @@ from db.repository.vehicle import get_vehicle_by_id | |||
def get_all_auctions(db: Session): | |||
print("Retrieving all auctions") | |||
auctions = db.query(Auction).all() | |||
for auction in auctions: | |||
auction.car = auction.vehicle | |||
@@ -13,6 +14,7 @@ def get_all_auctions(db: Session): | |||
def get_auction_by_id(id: int, db: Session): | |||
print("Retrieving auction by id: " + str(id)) | |||
auction = db.query(Auction).filter(Auction.Id == id).first() | |||
if not auction: | |||
return None | |||
@@ -21,6 +23,7 @@ def get_auction_by_id(id: int, db: Session): | |||
def create_new_auction(auction: CreateAuction, createId: int, db: Session): | |||
print("Creating new auction" + str(auction) + " by user " + str(createId)) | |||
vehicle = get_vehicle_by_id(auction.carId, db) | |||
if vehicle is None: | |||
return "novehicle" | |||
@@ -39,6 +42,7 @@ def create_new_auction(auction: CreateAuction, createId: int, db: Session): | |||
def delete_auction_by_id(id: int, db: Session): | |||
print("Deleting auction by id: " + str(id)) | |||
auction = db.query(Auction).filter(Auction.Id == id).first() | |||
if not auction: | |||
return "noauction" | |||
@@ -48,6 +52,7 @@ def delete_auction_by_id(id: int, db: Session): | |||
def edit_auction_by_id(id: int, auction: CreateAuction, db: Session): | |||
print("Editing auction by id: " + str(id) + " with data: " + str(auction)) | |||
auction_db = db.query(Auction).filter(Auction.Id == id) | |||
auction_object = auction_db.first() | |||
if not auction_object: | |||
@@ -7,6 +7,7 @@ from db.repository.user import get_user_by_id | |||
def create_new_task(task: CreateTask, db: Session): | |||
print("Creating new task" + str(task) + " by user " + str(task.DriverId)) | |||
driver = get_user_by_id(task.DriverId, "Driver", db) | |||
if not driver: | |||
return "notdriver" | |||
@@ -26,6 +27,7 @@ def create_new_task(task: CreateTask, db: Session): | |||
def change_task_status(task_id: int, status: str, distance: int, db: Session): | |||
print("Changing task status to " + status + " for task " + str(task_id)) | |||
task = db.query(DriveTask).filter(DriveTask.Id == task_id).first() | |||
if not task: | |||
return "notaskfound" | |||
@@ -11,6 +11,12 @@ from db.repository.vehicle import get_vehicle_by_id | |||
def create_fueling_task( | |||
fueling_task: CreateFuelingTask, current_user: int, db: Session | |||
): | |||
print( | |||
"Creating new fueling task" | |||
+ str(fueling_task) | |||
+ " by user " | |||
+ str(current_user) | |||
) | |||
if not get_vehicle_by_id(fueling_task.VehicleId, db=db): | |||
return "novehicle" | |||
@@ -33,7 +39,6 @@ def create_fueling_task( | |||
db.add(fueling_task_object) | |||
db.commit() | |||
db.refresh(fueling_task_object) | |||
print(driver.__dict__) | |||
driverobj = driver.__dict__ | |||
driverobj["AssignedVehicle"] = driver.vehicle.__dict__ | |||
resobj = fueling_task_object.__dict__ | |||
@@ -50,6 +55,7 @@ def create_fueling_task( | |||
def delete_fueling_task(fueling_task_id: int, db: Session): | |||
print("Deleting fueling task by id: " + str(fueling_task_id)) | |||
fueling_task = ( | |||
db.query(FuelingTask).filter(FuelingTask.Id == fueling_task_id).first() | |||
) | |||
@@ -61,6 +67,7 @@ def delete_fueling_task(fueling_task_id: int, db: Session): | |||
def get_fueling_task_by_id(fuel_task_id: int, db: Session): | |||
print("Retrieving fueling task by id: " + str(fuel_task_id)) | |||
fuel_task = db.query(FuelingTask).filter(FuelingTask.Id == fuel_task_id).first() | |||
if not fuel_task: | |||
return "notfound" | |||
@@ -80,6 +87,7 @@ def get_fueling_task_by_id(fuel_task_id: int, db: Session): | |||
def get_all_fueling_tasks(db: Session): | |||
print("Retrieving all fueling tasks") | |||
fuel_task = db.query(FuelingTask).all() | |||
result = [] | |||
for task in fuel_task: | |||
@@ -7,11 +7,10 @@ from db.models.carpart import CarPart | |||
from db.repository.user import get_car_driver | |||
def create_new_maintenancejob( | |||
maintenancejob: CreateMaintenanceJob, db: Session | |||
): | |||
def create_new_maintenancejob(maintenancejob: CreateMaintenanceJob, db: Session): | |||
print("Creating new maintenance job" + str(maintenancejob)) | |||
vehicledriver = get_car_driver(maintenancejob.VehicleID, db) | |||
if (vehicledriver != False): | |||
if vehicledriver != False: | |||
vehicledriver = vehicledriver.Id | |||
else: | |||
return "nodriver" | |||
@@ -30,6 +29,7 @@ def create_new_maintenancejob( | |||
def create_car_part(car_part: CreateCarPart, db: Session): | |||
print("Creating new car part" + str(car_part)) | |||
car_part_object = CarPart( | |||
ParentId=car_part.ParentId, | |||
Name=car_part.Name, | |||
@@ -50,6 +50,7 @@ def create_car_part(car_part: CreateCarPart, db: Session): | |||
def calculate_total_cost(car_parts: CarPart): | |||
print("Calculating total cost") | |||
total_cost = 0 | |||
for part in car_parts: | |||
total_cost += part.Cost | |||
@@ -57,14 +58,12 @@ def calculate_total_cost(car_parts: CarPart): | |||
def get_all_maintenance_jobs(db: Session): | |||
print("Getting all maintenance jobs") | |||
maintenancejobs = db.query(MaintenanceJob).all() | |||
print("DB Access complete") | |||
result = [] | |||
for job in maintenancejobs: | |||
job_dict = job.__dict__ | |||
print(job_dict) | |||
job_dict["CarPartsList"] = [part.__dict__ for part in job.CarParts] | |||
print(len(job_dict["CarPartsList"])) | |||
for part in job_dict["CarPartsList"]: | |||
if (part["ImageURL"] is None) or (part["ImageURL"] == ""): | |||
part["image"] = "" | |||
@@ -75,11 +74,11 @@ def get_all_maintenance_jobs(db: Session): | |||
job_dict["FinishedBy"] = job.FinishedBy.__dict__ | |||
job_dict["Vehicle"] = job.Vehicle.__dict__ | |||
result.append(job_dict) | |||
print("Returning...") | |||
return maintenancejobs | |||
def get_maintenance_job(maintenancejob_id: int, db: Session): | |||
print("Getting maintenance job by id: " + str(maintenancejob_id)) | |||
maintenancejob = ( | |||
db.query(MaintenanceJob).filter(MaintenanceJob.Id == maintenancejob_id).first() | |||
) | |||
@@ -96,17 +95,26 @@ def get_maintenance_job(maintenancejob_id: int, db: Session): | |||
if maintenancejob.Status == "Complete": | |||
res["FinishedBy"] = maintenancejob.FinishedBy.__dict__ | |||
res["Vehicle"] = maintenancejob.Vehicle.__dict__ | |||
print("DB Access complete") | |||
return maintenancejob | |||
def change_maintenance_status(maintenancejob_id: int, status: str, worker_id: int, db: Session): | |||
def change_maintenance_status( | |||
maintenancejob_id: int, status: str, worker_id: int, db: Session | |||
): | |||
print( | |||
"Changing maintenance job status to " | |||
+ status | |||
+ " for job " | |||
+ str(maintenancejob_id) | |||
+ " by worker " | |||
+ str(worker_id) | |||
) | |||
maintenancejob = ( | |||
db.query(MaintenanceJob).filter(MaintenanceJob.Id == maintenancejob_id).first() | |||
) | |||
if maintenancejob is None: | |||
return None | |||
if (status == "Complete"): | |||
if status == "Complete": | |||
maintenancejob.MaintenanceWorker = worker_id | |||
maintenancejob.Status = status | |||
db.commit() | |||
@@ -114,6 +122,3 @@ def change_maintenance_status(maintenancejob_id: int, status: str, worker_id: in | |||
return maintenancejob | |||
else: | |||
return None | |||
@@ -128,8 +128,6 @@ def get_pdf(driver_id: int, db: Session): | |||
content.append(title) | |||
content.append(Paragraph("<br/>", title_style)) | |||
print(report_data["Driver"]) | |||
# Add detailed information about the driver | |||
driver_info = [ | |||
["Driver Name", report_data["Driver"]["Name"]], | |||
@@ -152,7 +150,6 @@ def get_pdf(driver_id: int, db: Session): | |||
content.append(Paragraph("<br/><br/>", title_style)) | |||
vehicle = report_data["Driver"]["AssignedVehicle"].__dict__ | |||
print(vehicle) | |||
if ( | |||
vehicle["CurrentLocation"] is None | |||
or vehicle["CurrentLocation"] == "" | |||
@@ -9,6 +9,7 @@ from db.models.drivetask import DriveTask | |||
def create_new_user(user: UserCreate, db: Session): | |||
print("Creating new user" + str(user)) | |||
if get_user_by_email(user.Email, db): | |||
return "userExists" | |||
user_object = User( | |||
@@ -29,6 +30,7 @@ def create_new_user(user: UserCreate, db: Session): | |||
def create_new_driver(driver: DriverCreate, db: Session): | |||
print("Creating new driver" + str(driver)) | |||
if get_user_by_email(driver.Email, db): | |||
return "userExists" | |||
driver_object = User( | |||
@@ -50,6 +52,7 @@ def create_new_driver(driver: DriverCreate, db: Session): | |||
def get_user_by_id(user_id: int, role: str, db: Session): | |||
print("Retrieving user by id: " + str(user_id)) | |||
user = db.query(User).filter(User.Id == user_id).first() | |||
if not user: | |||
return False | |||
@@ -59,16 +62,19 @@ def get_user_by_id(user_id: int, role: str, db: Session): | |||
def get_user_by_email(email: str, db: Session): | |||
print("Retrieving user by email: " + str(email)) | |||
user = db.query(User).filter(User.Email == email).first() | |||
return user | |||
def get_user_by_phone(phone: str, db: Session): | |||
print("Retrieving user by phone: " + str(phone)) | |||
user = db.query(User).filter(User.ContactNumber == phone).first() | |||
return user | |||
def verify_driver_exists(driver_id: int, db: Session): | |||
print("Verifying driver exists: " + str(driver_id)) | |||
driver = db.query(User).filter(User.Id == driver_id).first() | |||
if not driver: | |||
return False | |||
@@ -78,6 +84,7 @@ def verify_driver_exists(driver_id: int, db: Session): | |||
def get_car_driver(vehicle_id: int, db: Session): | |||
print("Retrieving driver for vehicle: " + str(vehicle_id)) | |||
driver = db.query(User).filter(User.AssignedVehicle == vehicle_id).first() | |||
if not driver: | |||
return False | |||
@@ -85,6 +92,7 @@ def get_car_driver(vehicle_id: int, db: Session): | |||
def list_users(db: Session, role: str = "Any"): | |||
print("Listing users") | |||
users = db.query(User).filter((User.Role == role) | (role == "Any")).all() | |||
return users | |||
@@ -92,6 +100,7 @@ def list_users(db: Session, role: str = "Any"): | |||
def get_users_by_name( | |||
db: Session, name: str = "", role: str = None, page: int = 1, per_page: int = 20 | |||
): | |||
print("Listing users by name") | |||
if role == "Admin": | |||
return None | |||
if role is None: | |||
@@ -103,6 +112,7 @@ def get_users_by_name( | |||
def replace_user_data(user_id: int, user_data: UserCreate, db: Session): | |||
print("Replacing user data" + str(user_data) + " for user id: " + str(user_id)) | |||
user = db.query(User).filter(User.Id == user_id).first() | |||
if not user: | |||
return "userNotFound" | |||
@@ -121,6 +131,7 @@ def replace_user_data(user_id: int, user_data: UserCreate, db: Session): | |||
def delete_user_data(id: int, db: Session): | |||
print("Deleting user by id: " + str(id)) | |||
user = db.query(User).filter(User.Id == id).first() | |||
if not user: | |||
return "userNotFound" | |||
@@ -6,6 +6,7 @@ from db.repository.user import get_car_driver | |||
def create_new_vehicle(vehicle: CreateVehicle, db: Session): | |||
print("Creating new vehicle" + str(vehicle)) | |||
vehicle_object = Vehicle( | |||
**vehicle.model_dump(), Fuel=0, Status="Inactive", CurrentLocation=[] | |||
) | |||
@@ -16,6 +17,7 @@ def create_new_vehicle(vehicle: CreateVehicle, db: Session): | |||
def update_vehicle_geoloc(vehicle_id: int, location: VehicleLocation, db: Session): | |||
print("Updating vehicle geolocation" + str(location)) | |||
vehicle_db = db.query(Vehicle).filter(Vehicle.Id == vehicle_id) | |||
vehicle_object = vehicle_db.first() | |||
if not vehicle_object: | |||
@@ -29,13 +31,13 @@ def update_vehicle_geoloc(vehicle_id: int, location: VehicleLocation, db: Sessio | |||
def assign_vehicle_driver(vehicle_id: int, driver_id: int, db: Session): | |||
print("Assigning vehicle " + str(vehicle_id) + " to driver " + str(driver_id)) | |||
if driver_id != None: | |||
driver = ( | |||
db.query(User) | |||
.filter((User.Id == driver_id) & (User.Role == "Driver")) | |||
.first() | |||
) | |||
print(driver) | |||
vehicle = db.query(Vehicle).filter(Vehicle.Id == vehicle_id).first() | |||
if not vehicle: | |||
return "novehicle" | |||
@@ -59,6 +61,7 @@ def assign_vehicle_driver(vehicle_id: int, driver_id: int, db: Session): | |||
def list_vehicles(db: Session): | |||
print("Listing vehicles") | |||
vehicles = db.query(Vehicle).all() | |||
# assign AssignedDriver to all vehicles based on their drivers | |||
for vehicle in vehicles: | |||
@@ -71,6 +74,7 @@ def list_vehicles(db: Session): | |||
def get_vehicle_by_id(vehicle_id: int, db: Session): | |||
print("Retrieving vehicle by id: " + str(vehicle_id)) | |||
vehicle = db.query(Vehicle).filter(Vehicle.Id == vehicle_id).first() | |||
if not vehicle: | |||
return None | |||
@@ -83,6 +87,7 @@ def get_vehicle_by_id(vehicle_id: int, db: Session): | |||
def replace_vehicle_data(id: int, vehicle: UpdateVehicle, db: Session): | |||
print("Replacing vehicle data for vehicle " + str(id) + " with " + str(vehicle)) | |||
vehicle_db = db.query(Vehicle).filter(Vehicle.Id == id) | |||
vehicle_object = vehicle_db.first() | |||
if not vehicle_object: | |||
@@ -100,7 +105,6 @@ def replace_vehicle_data(id: int, vehicle: UpdateVehicle, db: Session): | |||
# return "driverNotFound" | |||
vehicle_object.Capacity = vehicle.Capacity | |||
vehicle_object.Year = vehicle.Year | |||
print(vehicle_object) | |||
db.add(vehicle_object) | |||
db.commit() | |||
# vehicle_object.AssignedDriver = vehicle.AssignedDriver | |||
@@ -108,6 +112,7 @@ def replace_vehicle_data(id: int, vehicle: UpdateVehicle, db: Session): | |||
def delete_vehicle_data(id: int, db: Session): | |||
print("Deleting vehicle data for vehicle " + str(id)) | |||
vehicle_db = db.query(Vehicle).filter(Vehicle.Id == id) | |||
vehicle_object = vehicle_db.first() | |||
if not vehicle_object: | |||