50 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Root resource for the OpenEventDatabase.
 | |
| """
 | |
| 
 | |
| import falcon
 | |
| from oedb.utils.serialization import dumps
 | |
| from oedb.utils.logging import logger
 | |
| 
 | |
| class RootResource:
 | |
|     """
 | |
|     Resource for the root endpoint.
 | |
|     Handles the / endpoint.
 | |
|     """
 | |
|     
 | |
|     def on_get(self, req, resp):
 | |
|         """
 | |
|         Handle GET requests to the / endpoint.
 | |
|         Returns a JSON response with available routes and a welcome message.
 | |
|         
 | |
|         Args:
 | |
|             req: The request object.
 | |
|             resp: The response object.
 | |
|         """
 | |
|         logger.info("Processing GET request to /")
 | |
|         
 | |
|         try:
 | |
|             # Create a response with available routes and a welcome message
 | |
|             response = {
 | |
|                 "message": "Welcome to the OpenEventDatabase API!",
 | |
|                 "available_routes": {
 | |
|                     "/": "This endpoint - provides information about available routes",
 | |
|                     "/event": "Get events matching specified criteria",
 | |
|                     "/event/{id}": "Get a specific event by ID",
 | |
|                     "/event/search": "Search for events using a GeoJSON geometry",
 | |
|                     "/stats": "Get statistics about the database",
 | |
|                     "/demo": "Interactive demo page with a map showing current events"
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|             # Set the response body and status
 | |
|             resp.text = dumps(response)
 | |
|             resp.status = falcon.HTTP_200
 | |
|             logger.success("Successfully processed GET request to /")
 | |
|         except Exception as e:
 | |
|             logger.error(f"Error processing GET request to /: {e}")
 | |
|             resp.status = falcon.HTTP_500
 | |
|             resp.text = dumps({"error": str(e)})
 | |
| 
 | |
| # Create a global instance of RootResource
 | |
| root = RootResource() | 
