Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 10 additions & 14 deletions namebase_exchange/exchange.py
Original file line number Diff line number Diff line change
Expand Up @@ -1142,14 +1142,14 @@ def get_dns_settings(self, domain: str):
"""
return self.request.get(path=f'/dns/domains/{domain}')

def update_dns_settings(self, domain: str, record_type: str = 'TXT', value: str = '',
host: Optional[str] = None, ttl: Optional[int] = 0) -> dict:
def update_dns_settings(self, domain: str, records: [dict]) -> dict:
"""
Function to updates the Handshake DNS settings for a domain. Execution of this function is as follows::
# https://blog.sia.tech/skynet-handshake-d5d16e6b632f
update_dns_settings(domain = 'test.testdomain', record_type = 'TXT',
value = 'AAApJJPnci_CzFnddB076HGu1_C64T6bfoiQqvsiVB5XeQ',
host: '')
update_dns_settings([{'type':'TXT',
'host':'',
'value':'AAApJJPnci_CzFnddB076HGu1_C64T6bfoiQqvsiVB5XeQ',
'ttl':0}])

The expected return result::

Expand All @@ -1162,18 +1162,14 @@ def update_dns_settings(self, domain: str, record_type: str = 'TXT', value: str
}
]

:param value:
:param record_type:
:param domain:
:param host:
:param records
records consist of a list of records, each record consists of a value, type, and host
:param domain
:return: List of records

"""
api_params = {
"type": record_type,
"host": host,
"value": value,
"ttl": ttl
"records": records,
}

return self.request.post(path=f'/dns/domains/{domain}', json_data=api_params)
return self.request.put(path=f'/dns/domains/{domain}', json_data=api_params)
10 changes: 10 additions & 0 deletions namebase_exchange/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,13 @@ def status(self):
r = requests.get(url=self.url + "/info", headers=self.headers)
r.raise_for_status()
return r.json()

def put(self, path, data=None, json_data=None, params=None):
"""Perform PUT request"""
r = requests.put(url=self.url + path, data=data, json=json_data, params=params, timeout=self.timeout,
headers=self.headers)
try:
r.raise_for_status()
except requests.exceptions.HTTPError as e:
return json.loads(e.response.content)
return r.json()