Skip to content

Commit

Permalink
[MIG] mail_tracking_mailgun: Migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
alan196 committed Feb 20, 2023
1 parent 0325532 commit b8b05f9
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion mail_tracking_mailgun/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
{
"name": "Mail tracking for Mailgun",
"summary": "Mail tracking and Mailgun webhooks integration",
"version": "15.0.1.1.0",
"version": "16.0.1.0.0",
"category": "Social Network",
"website": "https://github.com/OCA/social",
"author": "Tecnativa, Odoo Community Association (OCA)",
Expand Down
3 changes: 3 additions & 0 deletions mail_tracking_mailgun/models/mail_tracking_email.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,9 @@ def action_manual_check_mailgun(self):
url,
auth=("api", api_key),
params=params,
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
if not res or res.status_code != 200:
raise UserError(_("Couldn't retrieve Mailgun information"))
Expand Down
12 changes: 12 additions & 0 deletions mail_tracking_mailgun/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ def check_email_validity(self):
urljoin(params.api_url, "/v3/address/validate"),
auth=("api", params.validation_key),
params={"address": partner.email, "mailbox_verification": True},
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
if (
not res
Expand Down Expand Up @@ -131,6 +134,9 @@ def check_email_bounced(self):
res = requests.get(
urljoin(api_url, "/v3/%s/bounces/%s" % (domain, partner.email)),
auth=("api", api_key),
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
if res.status_code == 200 and not partner.email_bounced:
partner.email_bounced = True
Expand All @@ -151,6 +157,9 @@ def force_set_bounced(self):
urljoin(api_url, "/v3/%s/bounces" % domain),
auth=("api", api_key),
data={"address": partner.email},
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
partner.email_bounced = res.status_code == 200 and not partner.email_bounced

Expand All @@ -167,6 +176,9 @@ def force_unset_bounced(self):
res = requests.delete(
urljoin(api_url, "/v3/%s/bounces/%s" % (domain, partner.email)),
auth=("api", api_key),
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
if res.status_code in (200, 404) and partner.email_bounced:
partner.email_bounced = False
Expand Down
4 changes: 4 additions & 0 deletions mail_tracking_mailgun/readme/CONFIGURE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@ To configure this module, you need to:
You can also config partner email autocheck with this system parameter:

- `mailgun.auto_check_partner_email`: Set it to True.

You can also config timeout for mailgun with this system parameter:

- `mailgun.timeout`: Set it to a number of seconds.
9 changes: 9 additions & 0 deletions mail_tracking_mailgun/wizards/res_config_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ def mail_tracking_mailgun_unregister_webhooks(self):
webhooks = requests.get(
urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain),
auth=("api", params.api_key),
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
webhooks.raise_for_status()
for event, data in webhooks.json()["webhooks"].items():
Expand All @@ -100,6 +103,9 @@ def mail_tracking_mailgun_unregister_webhooks(self):
"/v3/domains/%s/webhooks/%s" % (params.domain, event),
),
auth=("api", params.api_key),
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
response.raise_for_status()

Expand All @@ -116,6 +122,9 @@ def mail_tracking_mailgun_register_webhooks(self):
urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain),
auth=("api", params.api_key),
data={"id": event, "url": [odoo_webhook]},
timeout=self.env["ir.config_parameter"]
.sudo()
.get_param("mailgun.timeout", 10),
)
# Assert correct registration
response.raise_for_status()

0 comments on commit b8b05f9

Please sign in to comment.