|
@@ -5,7 +5,6 @@ import httpx
|
|
|
from tenacity import retry, retry_if_exception_type, stop_before_delay, wait_fixed
|
|
|
|
|
|
from extensions.ext_database import db
|
|
|
-from libs.helper import RateLimiter
|
|
|
from models.account import TenantAccountJoin, TenantAccountRole
|
|
|
|
|
|
|
|
@@ -13,8 +12,6 @@ class BillingService:
|
|
|
base_url = os.environ.get("BILLING_API_URL", "BILLING_API_URL")
|
|
|
secret_key = os.environ.get("BILLING_API_SECRET_KEY", "BILLING_API_SECRET_KEY")
|
|
|
|
|
|
- compliance_download_rate_limiter = RateLimiter("compliance_download_rate_limiter", 4, 60)
|
|
|
-
|
|
|
@classmethod
|
|
|
def get_info(cls, tenant_id: str):
|
|
|
params = {"tenant_id": tenant_id}
|
|
@@ -94,29 +91,3 @@ class BillingService:
|
|
|
"""Update account deletion feedback."""
|
|
|
json = {"email": email, "feedback": feedback}
|
|
|
return cls._send_request("POST", "/account/delete-feedback", json=json)
|
|
|
-
|
|
|
- @classmethod
|
|
|
- def get_compliance_download_link(
|
|
|
- cls,
|
|
|
- doc_name: str,
|
|
|
- account_id: str,
|
|
|
- tenant_id: str,
|
|
|
- ip: str,
|
|
|
- device_info: str,
|
|
|
- ):
|
|
|
- limiter_key = f"{account_id}:{tenant_id}"
|
|
|
- if cls.compliance_download_rate_limiter.is_rate_limited(limiter_key):
|
|
|
- from controllers.console.error import CompilanceRateLimitError
|
|
|
-
|
|
|
- raise CompilanceRateLimitError()
|
|
|
-
|
|
|
- json = {
|
|
|
- "doc_name": doc_name,
|
|
|
- "account_id": account_id,
|
|
|
- "tenant_id": tenant_id,
|
|
|
- "ip_address": ip,
|
|
|
- "device_info": device_info,
|
|
|
- }
|
|
|
- res = cls._send_request("POST", "/compliance/download", json=json)
|
|
|
- cls.compliance_download_rate_limiter.increment_rate_limit(limiter_key)
|
|
|
- return res
|