|
|
@ -35,15 +35,22 @@ class BrevoRequest(http.Controller): |
|
|
|
def sent(self): |
|
|
|
"""Function for getting statuses into odoo""" |
|
|
|
data = json.loads(request.httprequest.data) |
|
|
|
_logger.info(data) |
|
|
|
message_id = request.env['mail.message'].sudo().search( |
|
|
|
[('message_id', 'ilike', data['message-id'])], limit=1) |
|
|
|
# Define subtypes to exclude (Notes) |
|
|
|
excluded_subtypes = [ |
|
|
|
request.env.ref('mail.mt_note').id, |
|
|
|
] |
|
|
|
message_id = request.env['mail.message'].sudo().search([ |
|
|
|
('message_id', '=', data['message-id']), |
|
|
|
('message_type', 'in', ['email', 'comment', 'user_notification', 'auto_comment']), |
|
|
|
('subtype_id', 'not in', excluded_subtypes)], limit=1) |
|
|
|
if message_id: |
|
|
|
# Update the mail.message with status and receiver |
|
|
|
message_id.write({ |
|
|
|
'status': data.get('event'), |
|
|
|
'receiver': data.get('email'), |
|
|
|
}) |
|
|
|
if data.get('event') == 'click': |
|
|
|
data.get('link') |
|
|
|
else: |
|
|
|
return 'ok', 200 |
|
|
|
# Handle click events (log the clicked link) |
|
|
|
if data.get('event') == 'click' and data.get('link'): |
|
|
|
_logger.info("Click event recorded for message %s: Link %s", |
|
|
|
message_id.id, data.get('link')) |
|
|
|
return {'status': 'ok'} |
|
|
|