1+ from typing import Optional , TYPE_CHECKING
2+
3+ from ..response import Response
4+
5+ if TYPE_CHECKING :
6+ from ..API import GreenApiPartner
7+
8+ class Partner :
9+ def __init__ (self , api : "GreenApiPartner" ):
10+ self .api = api
11+
12+ def getInstances (
13+ self
14+ ) -> Response :
15+
16+ request_body = self .__handle_parameters (locals ())
17+
18+ return self .api .request (
19+ "GET" , (
20+ "{{host}}/partner/"
21+ "getInstances/{{partnerToken}}"
22+ ), request_body
23+ )
24+
25+ def createInstance (
26+ self ,
27+ name : Optional [str ] = None ,
28+ webhookUrl : Optional [str ] = None ,
29+ webhookUrlToken : Optional [str ] = None ,
30+ delaySendMessagesMilliseconds : Optional [int ] = None ,
31+ markIncomingMessagesReaded : Optional [str ] = None ,
32+ markIncomingMessagesReadedOnReply : Optional [str ] = None ,
33+ outgoingWebhook : Optional [str ] = None ,
34+ outgoingMessageWebhook : Optional [str ] = None ,
35+ outgoingAPIMessageWebhook : Optional [str ] = None ,
36+ stateWebhook : Optional [str ] = None ,
37+ incomingWebhook : Optional [str ] = None ,
38+ deviceWebhook : Optional [str ] = None ,
39+ keepOnlineStatus : Optional [str ] = None ,
40+ pollMessageWebhook : Optional [str ] = None ,
41+ incomingBlockWebhook : Optional [str ] = None ,
42+ incomingCallWebhook : Optional [str ] = None ,
43+ editedMessageWebhook : Optional [str ] = None ,
44+ deletedMessageWebhook : Optional [str ] = None
45+ ) -> Response :
46+
47+ request_body = self .__handle_parameters (locals ())
48+
49+ return self .api .request (
50+ "POST" , (
51+ "{{host}}/partner/"
52+ "createInstance/{{partnerToken}}"
53+ ), request_body
54+ )
55+
56+ def deleteInstanceAccount (
57+ self ,
58+ idInstance : int
59+ ) -> Response :
60+
61+ request_body = self .__handle_parameters (locals ())
62+
63+ return self .api .request (
64+ "POST" , (
65+ "{{host}}/partner/"
66+ "deleteInstanceAccount/{{partnerToken}}"
67+ ), request_body
68+ )
69+
70+ @classmethod
71+ def __handle_parameters (cls , parameters : dict ) -> dict :
72+ handled_parameters = parameters .copy ()
73+
74+ handled_parameters .pop ("self" )
75+
76+ for key , value in parameters .items ():
77+ if value is None :
78+ handled_parameters .pop (key )
79+
80+ return handled_parameters
0 commit comments