✨(dimail) fix domain creation request to fit latest dimail
Adapt domain creationg request to latest protocol version, also make error reporting more robust: don't assume utf-8 but use the response's encoding, don't assume the error is JSON (it won't be when getting a 500) but reproduce the whole thing instead.
This commit is contained in:
@@ -82,9 +82,10 @@ class DimailAPIClient:
|
|||||||
"""Send a domain creation request to dimail API."""
|
"""Send a domain creation request to dimail API."""
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"domain": domain_name,
|
"name": domain_name,
|
||||||
"context": domain_name, # for now, we put each domain on its own context
|
"context_name": domain_name, # for now, we put each domain on its own context
|
||||||
"features": ["webmail", "mailboxes"],
|
"features": ["webmail", "mailbox"],
|
||||||
|
"delivery": "virtual",
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
response = session.post(
|
response = session.post(
|
||||||
@@ -159,7 +160,10 @@ class DimailAPIClient:
|
|||||||
|
|
||||||
def pass_dimail_unexpected_response(self, response):
|
def pass_dimail_unexpected_response(self, response):
|
||||||
"""Raise error when encountering an unexpected error in dimail."""
|
"""Raise error when encountering an unexpected error in dimail."""
|
||||||
error_content = json.loads(response.content.decode(response.encoding).replace("'", '"'))
|
try:
|
||||||
|
error_content = json.loads(response.content.decode(response.encoding).replace("'", '"'))
|
||||||
|
except:
|
||||||
|
error_content = response.content.decode(response.encoding)
|
||||||
|
|
||||||
logger.error(
|
logger.error(
|
||||||
"[DIMAIL] unexpected error : %s %s", response.status_code, error_content
|
"[DIMAIL] unexpected error : %s %s", response.status_code, error_content
|
||||||
|
|||||||
Reference in New Issue
Block a user