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() |