about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/mailersend/webhooks
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/mailersend/webhooks')
-rw-r--r--.venv/lib/python3.12/site-packages/mailersend/webhooks/__init__.py135
1 files changed, 135 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/mailersend/webhooks/__init__.py b/.venv/lib/python3.12/site-packages/mailersend/webhooks/__init__.py
new file mode 100644
index 00000000..92152b17
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/mailersend/webhooks/__init__.py
@@ -0,0 +1,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