up traffic
This commit is contained in:
parent
11cd3236c5
commit
3ec22cbe3b
4 changed files with 321 additions and 58 deletions
|
@ -52,27 +52,47 @@ class DemoResource:
|
|||
# Set content type to HTML
|
||||
resp.content_type = 'text/html'
|
||||
|
||||
# Fetch the event data from the API
|
||||
# Fetch the event data from the OEDB API
|
||||
logger.info(f"Fetching event data from API for event ID: {id}")
|
||||
response = requests.get(f'https://api.openeventdatabase.org/event/{id}')
|
||||
|
||||
|
||||
if response.status_code != 200:
|
||||
logger.error(f"API returned status {response.status_code} for event {id}")
|
||||
resp.status = falcon.HTTP_404
|
||||
resp.text = f"Event with ID {id} not found"
|
||||
resp.text = f"Event with ID {id} not found on API"
|
||||
return
|
||||
|
||||
|
||||
event_data = response.json()
|
||||
|
||||
logger.info(f"Successfully retrieved event data for {id}: {type(event_data)}")
|
||||
|
||||
# Validate event data structure
|
||||
if not isinstance(event_data, dict):
|
||||
logger.error(f"Invalid event data type: {type(event_data)}")
|
||||
resp.status = falcon.HTTP_500
|
||||
resp.text = "Invalid event data format received from API"
|
||||
return
|
||||
|
||||
if 'properties' not in event_data:
|
||||
logger.error(f"Event data missing 'properties': {event_data}")
|
||||
resp.status = falcon.HTTP_500
|
||||
resp.text = "Invalid event data structure - missing properties"
|
||||
return
|
||||
|
||||
# Render the template with the event data
|
||||
template = self.jinja_env.get_template('edit.html')
|
||||
html = template.render(
|
||||
id=id,
|
||||
event_data=event_data
|
||||
event_data=event_data # Pass Python object directly, let Jinja2 handle JSON conversion
|
||||
)
|
||||
|
||||
|
||||
# Set the response body and status
|
||||
resp.text = html
|
||||
resp.status = falcon.HTTP_200
|
||||
logger.success(f"Successfully processed GET request to /demo/edit for event ID: {id}")
|
||||
except requests.RequestException as e:
|
||||
logger.error(f"Error fetching event data from API: {e}")
|
||||
resp.status = falcon.HTTP_500
|
||||
resp.text = f"Error fetching event data: {str(e)}"
|
||||
except Exception as e:
|
||||
logger.error(f"Error processing GET request to /demo/edit: {e}")
|
||||
resp.status = falcon.HTTP_500
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue