aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/mailersend/webhooks/__init__.py
blob: 92152b17b6a5b1ccdcde6fa9a4cc1a8a589edfda (about) (plain)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
"""
Handles /webhooks endpoint
Doc: https://developers.mailersend.com/api/v1/webhooks.html
"""

import requests
from mailersend.base import base

data = {}


class NewWebhook(base.NewAPIClient):
    """
    Instantiates the /webhooks endpoint object
    """

    def __init__(self):
        """
        NewWebhook constructor
        """
        pass

    def get_webhooks(self, domain_id):
        """
        Returns a JSON response from the MailerSend API

        @params:
          domain_id (str): A domain ID
        """
        request = requests.get(
            f"{self.api_base}/webhooks",
            headers=self.headers_default,
            json={"domain_id": domain_id},
        )
        return request.text

    def get_webhook_by_id(self, webhook_id):
        """
        Returns a JSON response from the MailerSend API

        @params:
          webhook_id (str): A webhook ID
        """
        request = requests.get(
            f"{self.api_base}/webhooks/{webhook_id}", headers=self.headers_default
        )
        return request.text

    def set_webhook_url(self, webhook_url):
        """
        Sets the webhook 'url' field

        @params:
          webhook_url (str): A webhook URL
        """
        data["url"] = webhook_url

    def set_webhook_name(self, webhook_name):
        """
        Sets the webhook 'name' field

        @params:
          webhook_name (str): A webhook name
        """

        data["name"] = webhook_name

    def set_webhook_events(self, events):
        """
        Sets the webhook 'events' field

        @params:
          events (list): A list containing valid events
        """
        data["events"] = events

    def set_webhook_enabled(self, enabled=True):
        """
        Sets the webhook 'enabled' status field

        @params:
          enabled (bool): Controls webhook status
        """

        data["enabled"] = enabled

    def set_webhook_domain(self, domain_id):
        """
        Sets the webhook 'domain_id' status field

        @params:
          domain_id (str): A valid domain ID
        """

        data["domain_id"] = domain_id

    def update_webhook(self, webhook_id, key, value):
        """
        Updates a webhook setting

        @params:
          webhook_id (str): A valid webhook ID
          key (str): A setting key
          value (str): Corresponding keys value
        """

        request = requests.put(
            f"{self.api_base}/webhooks/{webhook_id}",
            headers=self.headers_default,
            json={f"{key}": value},
        )
        return request.text

    def delete_webhook(self, webhook_id):
        """
        Returns a JSON response from the MailerSend API

        @params:
          webhook_id (str): A valid webhook ID
        """

        request = requests.delete(
            f"{self.api_base}/webhooks/{webhook_id}", headers=self.headers_default
        )
        return request.text

    def create_webhook(self):
        """
        Returns a JSON response from the MailerSend API
        """

        request = requests.post(
            f"{self.api_base}/webhooks", headers=self.headers_default, json=data
        )
        return request.text