Source code for aiorobokassa.utils.helpers
"""Utility functions for aiorobokassa."""
from typing import Dict, Optional
from urllib.parse import urlencode
[docs]
def build_url(base_url: str, params: Dict[str, Optional[str]]) -> str:
"""
Build URL with query parameters.
Parameters are properly URL-encoded. SignatureValue should be last.
Args:
base_url: Base URL
params: Dictionary of query parameters (None values are skipped)
Returns:
URL with query string
"""
filtered_params = {k: str(v) for k, v in params.items() if v is not None}
if not filtered_params:
return base_url
query_string = urlencode(filtered_params, doseq=False)
return f"{base_url}?{query_string}"
[docs]
def parse_shp_params(params: Dict[str, str]) -> Dict[str, str]:
"""
Parse Shp_* parameters from request.
Args:
params: Dictionary of all parameters
Returns:
Dictionary with only Shp_* parameters (with Shp_ prefix removed)
"""
shp_params = {}
for key, value in params.items():
if key.startswith("Shp_"):
shp_key = key[4:]
shp_params[shp_key] = value
return shp_params