aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/mailersend/sms_inbounds/__init__.py
blob: 2ac3a66312a54275473ffa5795e15e99053672fd (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
"""
Handles /sms-inbounds endpoint
"""

import requests
from mailersend.base import base


class NewSmsInbounds(base.NewAPIClient):
    """
    Instantiates the /sms-inbounds endpoint object
    """

    # you shall not
    pass

    def get_inbound_routes(self, sms_number_id=None, enabled=True, page=1, limit=25):
        """
        Get a list of SMS inbound routes.

        @params:
          sms_number_id (string)
          enabled (bool)
          page (int)
          limit (int)
        """

        passed_arguments = locals()
        query_params = {}

        for key, value in passed_arguments.items():
            if key != "self":
                if key == "enabled":
                    query_params[key] = int(value)
                else:
                    query_params[key] = value

        request = requests.get(
            f"{self.api_base}/sms-inbounds",
            headers=self.headers_default,
            params=query_params,
        )

        return f"{request.status_code}\n{request.text}"

    def get_inbound_route(self, sms_inbound_id):
        """
        Get a single SMS inbound route.

        @params:
          sms_inbound_id (string)
        """

        request = requests.get(
            f"{self.api_base}/sms-inbounds/{sms_inbound_id}",
            headers=self.headers_default,
        )

        return f"{request.status_code}\n{request.text}"

    def create_inbound_route(
        self, sms_number_id, name, forward_url, filter={}, enabled=True
    ):
        """
        Add an SMS inbound route.

        @params:
          sms_number_id (string)
          name (string)
          forward_url (string)
          filter (object)
          enabled (bool)
        """

        data = {
            "sms_number_id": sms_number_id,
            "name": name,
            "forward_url": forward_url,
            "filter": filter,
            "enabled": int(enabled),
        }

        request = requests.post(
            f"{self.api_base}/sms-inbounds", headers=self.headers_default, json=data
        )

        return f"{request.status_code}\n{request.text}"

    def update_inbound_route(
        self, sms_inbound_id, name=None, forward_url=None, filter=None, enabled=None
    ):
        """
        Update an inbound route.

        @params:
          sms_inbound_id (string)
          name (string)
          forward_url (string)
          filter (object)
          enabled (bool)
        """

        passed_arguments = locals()
        data = {}

        for key, value in passed_arguments.items():
            if key != "self" and key != "sms_inbound_id" and value is not None:
                if key == "enabled":
                    data[key] = int(value)
                else:
                    data[key] = value

        request = requests.put(
            f"{self.api_base}/sms-inbounds/{sms_inbound_id}",
            headers=self.headers_default,
            json=data,
        )

        return f"{request.status_code}\n{request.text}"

    def delete_inbound_route(self, sms_inbound_id):
        """
        Delete an SMS inbound route.

        @params:
          sms_inbound_id (string)
        """

        request = requests.delete(
            f"{self.api_base}/sms-inbounds/{sms_inbound_id}",
            headers=self.headers_default,
        )

        return f"{request.status_code}\n{request.text}"