# -*- 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']