1. from typing import Dict, Any
  2. import re
  3. def initialize_diag_params(params: Dict[str, Any]) -> Dict[str, Any]:
  4. """
  5. Initializes URL parameters for diagnostics with basic input validation.
  6. Args:
  7. params: A dictionary of URL parameters.
  8. Returns:
  9. A dictionary of initialized URL parameters.
  10. """
  11. initialized_params = {}
  12. # Example: 'user_id' - integer validation
  13. user_id = params.get("user_id")
  14. if user_id is not None:
  15. try:
  16. initialized_params["user_id"] = int(user_id)
  17. except ValueError:
  18. initialized_params["user_id"] = None # Or a default value
  19. # Example: 'session_id' - alphanumeric validation
  20. session_id = params.get("session_id")
  21. if session_id is not None:
  22. if not re.match("^[a-zA-Z0-9]+$", session_id):
  23. initialized_params["session_id"] = None # Or a default value
  24. else:
  25. initialized_params["session_id"] = session_id
  26. # Example: 'timestamp' - check if it's a valid datetime string
  27. timestamp = params.get("timestamp")
  28. if timestamp is not None:
  29. try:
  30. initialized_params["timestamp"] = datetime.fromisoformat(timestamp) # Requires import datetime
  31. except ValueError:
  32. initialized_params["timestamp"] = None # Or a default value
  33. # Example: 'event_type' - allow a limited set of values
  34. event_type = params.get("event_type")
  35. if event_type is not None:
  36. allowed_types = ["page_view", "button_click", "form_submit"]
  37. if event_type not in allowed_types:
  38. initialized_params["event_type"] = None # Or a default value
  39. else:
  40. initialized_params["event_type"] = event_type
  41. return initialized_params
  42. import datetime #Needed for timestamp validation example

Add your comment