operation_service.py 1.0 KB

1234567891011121314151617181920212223242526272829
  1. import os
  2. import requests
  3. class OperationService:
  4. base_url = os.environ.get("BILLING_API_URL", "BILLING_API_URL")
  5. secret_key = os.environ.get("BILLING_API_SECRET_KEY", "BILLING_API_SECRET_KEY")
  6. @classmethod
  7. def _send_request(cls, method, endpoint, json=None, params=None):
  8. headers = {"Content-Type": "application/json", "Billing-Api-Secret-Key": cls.secret_key}
  9. url = f"{cls.base_url}{endpoint}"
  10. response = requests.request(method, url, json=json, params=params, headers=headers)
  11. return response.json()
  12. @classmethod
  13. def record_utm(cls, tenant_id: str, utm_info: dict):
  14. params = {
  15. "tenant_id": tenant_id,
  16. "utm_source": utm_info.get("utm_source", ""),
  17. "utm_medium": utm_info.get("utm_medium", ""),
  18. "utm_campaign": utm_info.get("utm_campaign", ""),
  19. "utm_content": utm_info.get("utm_content", ""),
  20. "utm_term": utm_info.get("utm_term", ""),
  21. }
  22. return cls._send_request("POST", "/tenant_utms", params=params)