Archived
Add formatting and type checks
This commit is contained in:
1 parent
c0d82eaf26
commit
24747866bc
38 files changed
+800
-265
No files matched your search
@@ -4,6 +4,7 @@ import json
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
from typing import Any, cast
|
||||
|
||||
from ..models import UpdateResult
|
||||
from ..settings import DdnsSettings
|
||||
@@ -49,11 +50,13 @@ def _cloudflare_upsert_record(settings: DdnsSettings, hostname: str, record_type
|
||||
_cloudflare_reconcile_record(settings, hostname, record_type, value)
|
||||
|
||||
|
||||
def _cloudflare_find_record(settings: DdnsSettings, hostname: str, record_type: str) -> dict[str, str] | None:
|
||||
def _cloudflare_find_record(settings: DdnsSettings, hostname: str, record_type: str) -> dict[str, Any] | None:
|
||||
query = urllib.parse.urlencode({"type": record_type, "name": hostname})
|
||||
response = _cloudflare_request(settings, f"/dns_records?{query}")
|
||||
records = response.get("result", [])
|
||||
return records[0] if records else None
|
||||
if not isinstance(records, list) or not records:
|
||||
return None
|
||||
return cast(dict[str, Any], records[0])
|
||||
|
||||
|
||||
def _cloudflare_reconcile_record(settings: DdnsSettings, hostname: str, record_type: str, value: str) -> None:
|
||||
@@ -69,7 +72,7 @@ def _cloudflare_request(
|
||||
path: str,
|
||||
method: str = "GET",
|
||||
payload: dict[str, object] | None = None,
|
||||
) -> dict[str, object]:
|
||||
) -> dict[str, Any]:
|
||||
url = f"https://api.cloudflare.com/client/v4/zones/{settings.cloudflare_zone_id}{path}"
|
||||
body = json.dumps(payload).encode("utf-8") if payload is not None else None
|
||||
request = urllib.request.Request(url, data=body, method=method)
|
||||
|
||||
Reference in new issue
Block a user