-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathpartner.py
More file actions
66 lines (49 loc) · 1.83 KB
/
partner.py
File metadata and controls
66 lines (49 loc) · 1.83 KB
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
from typing import Dict, TYPE_CHECKING, Union
from ..response import Response
if TYPE_CHECKING:
from ..API import GreenApiPartner
class Partner:
def __init__(self, api: "GreenApiPartner"):
self.api = api
def getInstances(self) -> Response:
"""
The method is aimed for getting all the account instances created by the partner.
https://green-api.com/en/docs/partners/getInstances/
"""
return self.api.request(
"GET", (
"{{host}}/partner/"
"getInstances/{{partnerToken}}"
)
)
def createInstance(self, requestBody: Dict[str, Union[int, str]]) -> Response:
"""
The method is aimed for creating a messenger account instance on the partner's part.
https://green-api.com/en/docs/partners/createInstance/
"""
return self.api.request(
"POST", (
"{{host}}/partner/"
"createInstance/{{partnerToken}}"
), requestBody
)
def deleteInstanceAccount(self, idInstance: int) -> Response:
"""
The method is aimed for deleting an instance of the partners's account.
https://green-api.com/en/docs/partners/deleteInstanceAccount/
"""
request_body = self.__handle_parameters(locals())
return self.api.request(
"POST", (
"{{host}}/partner/"
"deleteInstanceAccount/{{partnerToken}}"
), request_body
)
@classmethod
def __handle_parameters(cls, parameters: dict) -> dict:
handled_parameters = parameters.copy()
handled_parameters.pop("self")
for key, value in parameters.items():
if value is None:
handled_parameters.pop(key)
return handled_parameters