Compare commits
	
		
			3 Commits
		
	
	
		
			5a698dd02c
			...
			444c47e3a4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 444c47e3a4 | |||
| da6ab207d9 | |||
| c15e257dea | 
@@ -29,7 +29,7 @@ def configure_logging():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        logger.info(f"Logging to Loki at {loki_url} with {loki_handler.labels} and {is_debug=}")
 | 
					        logger.info(f"Logging to Loki at {loki_url} with {loki_handler.labels} and {is_debug=}")
 | 
				
			||||||
        logging_handlers = [loki_handler, logging.StreamHandler()]
 | 
					        logging_handlers = [loki_handler, logging.StreamHandler()]
 | 
				
			||||||
        logging_level = logging.DEBUG if is_debug else logging.INFO
 | 
					        logging_level = logging.DEBUG
 | 
				
			||||||
        # silence the chatty logs loki generates itself
 | 
					        # silence the chatty logs loki generates itself
 | 
				
			||||||
        logging.getLogger('urllib3.connectionpool').setLevel(logging.WARNING)
 | 
					        logging.getLogger('urllib3.connectionpool').setLevel(logging.WARNING)
 | 
				
			||||||
        # no need for time since it's added by loki or can be shown in kube logs
 | 
					        # no need for time since it's added by loki or can be shown in kube logs
 | 
				
			||||||
@@ -39,7 +39,7 @@ def configure_logging():
 | 
				
			|||||||
        # if we are in a debug (local) session, set verbose and rich logging
 | 
					        # if we are in a debug (local) session, set verbose and rich logging
 | 
				
			||||||
        from rich.logging import RichHandler
 | 
					        from rich.logging import RichHandler
 | 
				
			||||||
        logging_handlers = [RichHandler()]
 | 
					        logging_handlers = [RichHandler()]
 | 
				
			||||||
        logging_level = logging.DEBUG if is_debug else logging.INFO
 | 
					        logging_level = logging.DEBUG
 | 
				
			||||||
        logging_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
 | 
					        logging_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -179,6 +179,45 @@ def get_landmark(landmark_uuid: str) -> Landmark:
 | 
				
			|||||||
        raise HTTPException(status_code=404, detail="Landmark not found") from exc
 | 
					        raise HTTPException(status_code=404, detail="Landmark not found") from exc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@app.post("/trip/recompute-time/{trip_uuid}/{removed_landmark_uuid}")
 | 
				
			||||||
 | 
					def update_trip_time(trip_uuid: str, removed_landmark_uuid: str) -> Trip:
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Updates the reaching times of a given trip when removing a landmark.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Args:
 | 
				
			||||||
 | 
					        landmark_uuid (str) : unique identifier for a Landmark.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Returns:
 | 
				
			||||||
 | 
					        (Landmark)          : the corresponding Landmark.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    # First, fetch the trip in the cache.
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        trip = cache_client.get(f'trip_{trip_uuid}')
 | 
				
			||||||
 | 
					    except KeyError as exc:
 | 
				
			||||||
 | 
					        raise HTTPException(status_code=404, detail='Trip not found') from exc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    landmarks = []
 | 
				
			||||||
 | 
					    next_uuid = trip.first_landmark_uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Extract landmarks
 | 
				
			||||||
 | 
					    try :
 | 
				
			||||||
 | 
					        while next_uuid is not None:
 | 
				
			||||||
 | 
					            landmark = cache_client.get(f'landmark_{next_uuid}')
 | 
				
			||||||
 | 
					            # Filter out the removed landmark.
 | 
				
			||||||
 | 
					            if next_uuid != removed_landmark_uuid :
 | 
				
			||||||
 | 
					                landmarks.append(landmark)
 | 
				
			||||||
 | 
					            next_uuid = landmark.next_uuid  # Prepare for the next iteration
 | 
				
			||||||
 | 
					    except KeyError as exc:
 | 
				
			||||||
 | 
					        raise HTTPException(status_code=404, detail=f'landmark {next_uuid} not found') from exc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Re-link every thing and compute times again
 | 
				
			||||||
 | 
					    linked_tour = LinkedLandmarks(landmarks)
 | 
				
			||||||
 | 
					    trip = Trip.from_linked_landmarks(linked_tour, cache_client)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return trip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@app.post("/toilets/new")
 | 
					@app.post("/toilets/new")
 | 
				
			||||||
def get_toilets(location: tuple[float, float] = Query(...), radius: int = 500) -> list[Toilets] :
 | 
					def get_toilets(location: tuple[float, float] = Query(...), radius: int = 500) -> list[Toilets] :
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user