|
|
|
@@ -1,6 +1,7 @@ |
|
|
|
import os |
|
|
|
|
|
|
|
import requests |
|
|
|
import httpx |
|
|
|
from tenacity import retry, retry_if_not_exception_type, stop_before_delay, wait_fixed |
|
|
|
|
|
|
|
from extensions.ext_database import db |
|
|
|
from models.account import TenantAccountJoin, TenantAccountRole |
|
|
|
@@ -39,11 +40,17 @@ class BillingService: |
|
|
|
return cls._send_request("GET", "/invoices", params=params) |
|
|
|
|
|
|
|
@classmethod |
|
|
|
@retry( |
|
|
|
wait=wait_fixed(2), |
|
|
|
stop=stop_before_delay(10), |
|
|
|
retry=retry_if_not_exception_type(httpx.RequestError), |
|
|
|
reraise=True, |
|
|
|
) |
|
|
|
def _send_request(cls, method, endpoint, json=None, params=None): |
|
|
|
headers = {"Content-Type": "application/json", "Billing-Api-Secret-Key": cls.secret_key} |
|
|
|
|
|
|
|
url = f"{cls.base_url}{endpoint}" |
|
|
|
response = requests.request(method, url, json=json, params=params, headers=headers) |
|
|
|
response = httpx.request(method, url, json=json, params=params, headers=headers) |
|
|
|
|
|
|
|
return response.json() |
|
|
|
|