from typing import Dict, Any
import re
def initialize_diag_params(params: Dict[str, Any]) -> Dict[str, Any]:
"""
Initializes URL parameters for diagnostics with basic input validation.
Args:
params: A dictionary of URL parameters.
Returns:
A dictionary of initialized URL parameters.
"""
initialized_params = {}
# Example: 'user_id' - integer validation
user_id = params.get("user_id")
if user_id is not None:
try:
initialized_params["user_id"] = int(user_id)
except ValueError:
initialized_params["user_id"] = None # Or a default value
# Example: 'session_id' - alphanumeric validation
session_id = params.get("session_id")
if session_id is not None:
if not re.match("^[a-zA-Z0-9]+$", session_id):
initialized_params["session_id"] = None # Or a default value
else:
initialized_params["session_id"] = session_id
# Example: 'timestamp' - check if it's a valid datetime string
timestamp = params.get("timestamp")
if timestamp is not None:
try:
initialized_params["timestamp"] = datetime.fromisoformat(timestamp) # Requires import datetime
except ValueError:
initialized_params["timestamp"] = None # Or a default value
# Example: 'event_type' - allow a limited set of values
event_type = params.get("event_type")
if event_type is not None:
allowed_types = ["page_view", "button_click", "form_submit"]
if event_type not in allowed_types:
initialized_params["event_type"] = None # Or a default value
else:
initialized_params["event_type"] = event_type
return initialized_params
import datetime #Needed for timestamp validation example
Add your comment