Source code for pyramid_sendgrid_webhooks.events.engagement

# -*- coding: utf-8 -*-
"""
Classes for incoming engagement webhook events

ClickEvent
OpenEvent
SpamReportEvent
UnsubscribeEvent
GroupUnsubscribeEvent
GroupResubscribeEvent
"""

from .base import BaseWebhookEvent


[docs]class BaseEngagementEvent(BaseWebhookEvent): """ Basic interface shared for all engagement events - click - open - spamreport - unsubscribe """ def __init__(self, request, data): super(BaseEngagementEvent, self).__init__(request, data) self.useragent = self.data.get('useragent')
[docs]class ClickEvent(BaseEngagementEvent): def __init__(self, request, data): super(ClickEvent, self).__init__(request, data) self.url = self.data['url']
[docs]class OpenEvent(BaseEngagementEvent): pass
[docs]class SpamReportEvent(BaseEngagementEvent): pass
[docs]class UnsubscribeEvent(BaseEngagementEvent): pass
[docs]class GroupUnsubscribeEvent(BaseEngagementEvent): def __init__(self, request, data): super(GroupUnsubscribeEvent, self).__init__(request, data) self.asm_group_id = self.data['asm_group_id']
[docs]class GroupResubscribeEvent(BaseEngagementEvent): def __init__(self, request, data): super(GroupResubscribeEvent, self).__init__(request, data) self.asm_group_id = self.data['asm_group_id']