|
|
|
|
@ -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()
|
|
|
|
|
|
|
|
|
|
|