From 1e45f1ffd16e4c43df8f58128dffd8667aac157e Mon Sep 17 00:00:00 2001 From: Laurent Bossavit Date: Thu, 7 Nov 2024 18:22:40 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(dimail)=20fix=20domain=20creation=20r?= =?UTF-8?q?equest=20to=20fit=20latest=20dimail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- src/backend/mailbox_manager/utils/dimail.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/mailbox_manager/utils/dimail.py b/src/backend/mailbox_manager/utils/dimail.py index ec8773a..07bd82d 100644 --- a/src/backend/mailbox_manager/utils/dimail.py +++ b/src/backend/mailbox_manager/utils/dimail.py @@ -82,9 +82,10 @@ class DimailAPIClient: """Send a domain creation request to dimail API.""" payload = { - "domain": domain_name, - "context": domain_name, # for now, we put each domain on its own context - "features": ["webmail", "mailboxes"], + "name": domain_name, + "context_name": domain_name, # for now, we put each domain on its own context + "features": ["webmail", "mailbox"], + "delivery": "virtual", } try: response = session.post( @@ -159,7 +160,10 @@ class DimailAPIClient: def pass_dimail_unexpected_response(self, response): """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( "[DIMAIL] unexpected error : %s %s", response.status_code, error_content