Browse Source

feat(api): allow specifying Accept: for pdns requests

Nils Wisiol 2 years ago
parent
commit
d2de8c6b66
1 changed files with 21 additions and 25 deletions
  1. 21 25
      api/desecapi/pdns.py

+ 21 - 25
api/desecapi/pdns.py

@@ -73,34 +73,30 @@ NSMASTER = object()
 _config = {
 _config = {
     NSLORD: {
     NSLORD: {
         "base_url": settings.NSLORD_PDNS_API,
         "base_url": settings.NSLORD_PDNS_API,
-        "headers": {
-            "Accept": "application/json",
-            "User-Agent": "desecapi",
-            "X-API-Key": settings.NSLORD_PDNS_API_TOKEN,
-        },
+        "apikey": settings.NSLORD_PDNS_API_TOKEN,
     },
     },
     NSMASTER: {
     NSMASTER: {
         "base_url": settings.NSMASTER_PDNS_API,
         "base_url": settings.NSMASTER_PDNS_API,
-        "headers": {
-            "Accept": "application/json",
-            "User-Agent": "desecapi",
-            "X-API-Key": settings.NSMASTER_PDNS_API_TOKEN,
-        },
+        "apikey": settings.NSMASTER_PDNS_API_TOKEN,
     },
     },
 }
 }
 
 
 
 
-def _pdns_request(method, *, server, path, data=None):
+def _pdns_request(
+    method, *, server, path, data=None, accept="application/json", **kwargs
+):
     if data is not None:
     if data is not None:
         data = json.dumps(data)
         data = json.dumps(data)
     if data is not None and len(data) > settings.PDNS_MAX_BODY_SIZE:
     if data is not None and len(data) > settings.PDNS_MAX_BODY_SIZE:
         raise RequestEntityTooLarge
         raise RequestEntityTooLarge
 
 
+    headers = {
+        "Accept": accept,
+        "User-Agent": "desecapi",
+        "X-API-Key": _config[server]["apikey"],
+    }
     r = requests.request(
     r = requests.request(
-        method,
-        _config[server]["base_url"] + path,
-        data=data,
-        headers=_config[server]["headers"],
+        method, _config[server]["base_url"] + path, data=data, headers=headers
     )
     )
     if r.status_code not in range(200, 300):
     if r.status_code not in range(200, 300):
         raise PDNSException(response=r)
         raise PDNSException(response=r)
@@ -108,24 +104,24 @@ def _pdns_request(method, *, server, path, data=None):
     return r
     return r
 
 
 
 
-def _pdns_post(server, path, data):
-    return _pdns_request("post", server=server, path=path, data=data)
+def _pdns_post(server, path, data, **kwargs):
+    return _pdns_request("post", server=server, path=path, data=data, **kwargs)
 
 
 
 
-def _pdns_patch(server, path, data):
-    return _pdns_request("patch", server=server, path=path, data=data)
+def _pdns_patch(server, path, data, **kwargs):
+    return _pdns_request("patch", server=server, path=path, data=data, **kwargs)
 
 
 
 
-def _pdns_get(server, path):
-    return _pdns_request("get", server=server, path=path)
+def _pdns_get(server, path, **kwargs):
+    return _pdns_request("get", server=server, path=path, **kwargs)
 
 
 
 
-def _pdns_put(server, path):
-    return _pdns_request("put", server=server, path=path)
+def _pdns_put(server, path, **kwargs):
+    return _pdns_request("put", server=server, path=path, **kwargs)
 
 
 
 
-def _pdns_delete(server, path):
-    return _pdns_request("delete", server=server, path=path)
+def _pdns_delete(server, path, **kwargs):
+    return _pdns_request("delete", server=server, path=path, **kwargs)
 
 
 
 
 def pdns_id(name):
 def pdns_id(name):