diff options
Diffstat (limited to 'arthur/apis/cloudflare/zones.py')
| -rw-r--r-- | arthur/apis/cloudflare/zones.py | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/arthur/apis/cloudflare/zones.py b/arthur/apis/cloudflare/zones.py index 81a54f1..7d407a0 100644 --- a/arthur/apis/cloudflare/zones.py +++ b/arthur/apis/cloudflare/zones.py @@ -8,30 +8,34 @@ from arthur.config import CONFIG  AUTH_HEADER = {"Authorization": f"Bearer {CONFIG.cloudflare_token}"} -async def list_zones(zone_name: Optional[str] = None) -> dict[str, str]: +async def list_zones( +    session: aiohttp.ClientSession, +    zone_name: Optional[str] = None, +) -> dict[str, str]:      """List all Cloudflare zones."""      endpoint = "https://api.cloudflare.com/client/v4/zones"      if zone_name is not None:          endpoint += f"?name={zone_name}" -    async with aiohttp.ClientSession() as session: -        async with session.get(endpoint, headers=AUTH_HEADER) as response: -            info = await response.json() +    async with session.get(endpoint, headers=AUTH_HEADER) as response: +        info = await response.json()      zones = info["result"]      return {zone["name"]: zone["id"] for zone in zones} -async def purge_zone(zone_identifier: str) -> dict: +async def purge_zone( +    session: aiohttp.ClientSession, +    zone_identifier: str, +) -> dict:      """Purge the cache for a Cloudflare zone."""      endpoint = f"https://api.cloudflare.com/client/v4/zones/{zone_identifier}/purge_cache"      request_body = {"purge_everything": True} -    async with aiohttp.ClientSession() as session: -        async with session.post(endpoint, headers=AUTH_HEADER, json=request_body) as response: -            info = await response.json() +    async with session.post(endpoint, headers=AUTH_HEADER, json=request_body) as response: +        info = await response.json()      return {"success": info["success"], "errors": info["errors"]} | 
