Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

# -*- coding: utf-8 -*- 

""" 

Classes for incoming delivery webhook events 

 

BounceEvent 

DeferredEvent 

DeliveredEvent 

DroppedEvent 

ProcessedEvent 

""" 

 

from .base import BaseWebhookEvent 

 

 

class BaseDeliveryEvent(BaseWebhookEvent): 

    """ 

    Basic interface shared for all delivery events 

 

    - bounce 

    - deferred 

    - delivered 

    - dropped 

    - processed 

    """ 

    def __init__(self, request, data): 

        super(BaseDeliveryEvent, self).__init__(request, data) 

        self.smtp_id = self.data['smtp-id'] 

 

 

class BounceEvent(BaseDeliveryEvent): 

    def __init__(self, request, data): 

        super(BounceEvent, self).__init__(request, data) 

        self.status = self.data['status'] 

        self.reason = self.data['reason'] 

        self.type = self.data['type'] 

 

 

class DeferredEvent(BaseDeliveryEvent): 

    def __init__(self, request, data): 

        super(DeferredEvent, self).__init__(request, data) 

        self.response = self.data['response'] 

        self.attempt = self.data['attempt'] 

 

 

class DeliveredEvent(BaseDeliveryEvent): 

    def __init__(self, request, data): 

        super(DeliveredEvent, self).__init__(request, data) 

        self.response = self.data['response'] 

 

 

class DroppedEvent(BaseDeliveryEvent): 

    def __init__(self, request, data): 

        super(DroppedEvent, self).__init__(request, data) 

        self.reason = self.data['reason'] 

 

 

class ProcessedEvent(BaseDeliveryEvent): 

    pass