22from .errors import *
33from .voice import *
44from .sms import *
5+ from .verify import *
56from datetime import datetime
67import logging
78from platform import python_version
@@ -126,6 +127,9 @@ def __init__(
126127 self .application_v2 = ApplicationV2 (api_server )
127128
128129 self .session = requests .Session ()
130+
131+ # Internal Verify Object - a method that return a verify instance, just for cool definitions
132+ self .Verify = Verify (self )
129133
130134 # Get and Set __host attribute
131135 def host (self , value = None ):
@@ -148,20 +152,6 @@ def api_host(self, value=None):
148152 def auth (self , params = None , ** kwargs ):
149153 self .auth_params = params or kwargs
150154
151- def send_message (self , params ):
152- """
153- Send an SMS message.
154- Requires a client initialized with `key` and either `secret` or `signature_secret`.
155- ::
156- client.send_message({
157- "to": MY_CELLPHONE,
158- "from": MY_NEXMO_NUMBER,
159- "text": "Hello From Nexmo!",
160- })
161- :param dict params: A dict of values described at `Send an SMS <https://developer.nexmo.com/api/sms#send-an-sms>`_
162- """
163- return self .post (self .host (), "/sms/json" , params , supports_signature_auth = True )
164-
165155 def get_balance (self ):
166156 return self .get (self .host (), "/account/get-balance" )
167157
@@ -226,24 +216,6 @@ def send_ussd_prompt_message(self, params=None, **kwargs):
226216 def send_2fa_message (self , params = None , ** kwargs ):
227217 return self .post (self .host (), "/sc/us/2fa/json" , params or kwargs )
228218
229- def submit_sms_conversion (self , message_id , delivered = True , timestamp = None ):
230- """
231- Notify Nexmo that an SMS was successfully received.
232-
233- :param message_id: The `message-id` str returned by the send_message call.
234- :param delivered: A `bool` indicating that the message was or was not successfully delivered.
235- :param timestamp: A `datetime` object containing the time the SMS arrived.
236- :return: The parsed response from the server. On success, the bytestring b'OK'
237- """
238- params = {
239- "message-id" : message_id ,
240- "delivered" : delivered ,
241- "timestamp" : timestamp or datetime .now (pytz .utc ),
242- }
243- # Ensure timestamp is a string:
244- _format_date_param (params , "timestamp" )
245- return self .post (self .api_host (), "/conversions/sms" , params )
246-
247219 def send_event_alert_message (self , params = None , ** kwargs ):
248220 return self .post (self .host (), "/sc/us/alert/json" , params or kwargs )
249221
@@ -256,82 +228,6 @@ def get_event_alert_numbers(self):
256228 def resubscribe_event_alert_number (self , params = None , ** kwargs ):
257229 return self .post (self .host (), "/sc/us/alert/opt-in/manage/json" , params or kwargs )
258230
259- def initiate_call (self , params = None , ** kwargs ):
260- return self .post (self .host (), "/call/json" , params or kwargs )
261-
262- def initiate_tts_call (self , params = None , ** kwargs ):
263- return self .post (self .api_host (), "/tts/json" , params or kwargs )
264-
265- def initiate_tts_prompt_call (self , params = None , ** kwargs ):
266- return self .post (self .api_host (), "/tts-prompt/json" , params or kwargs )
267-
268- def start_verification (self , params = None , ** kwargs ):
269- return self .post (self .api_host (), "/verify/json" , params or kwargs )
270-
271- def send_verification_request (self , params = None , ** kwargs ):
272- warnings .warn (
273- "nexmo.Client#send_verification_request is deprecated (use #start_verification instead)" ,
274- DeprecationWarning ,
275- stacklevel = 2 ,
276- )
277-
278- return self .post (self .api_host (), "/verify/json" , params or kwargs )
279-
280- def check_verification (self , request_id , params = None , ** kwargs ):
281- return self .post (
282- self .api_host (),
283- "/verify/check/json" ,
284- dict (params or kwargs , request_id = request_id ),
285- )
286-
287- def check_verification_request (self , params = None , ** kwargs ):
288- warnings .warn (
289- "nexmo.Client#check_verification_request is deprecated (use #check_verification instead)" ,
290- DeprecationWarning ,
291- stacklevel = 2 ,
292- )
293-
294- return self .post (self .api_host (), "/verify/check/json" , params or kwargs )
295-
296- def get_verification (self , request_id ):
297- return self .get (
298- self .api_host (), "/verify/search/json" , {"request_id" : request_id }
299- )
300-
301- def get_verification_request (self , request_id ):
302- warnings .warn (
303- "nexmo.Client#get_verification_request is deprecated (use #get_verification instead)" ,
304- DeprecationWarning ,
305- stacklevel = 2 ,
306- )
307-
308- return self .get (
309- self .api_host (), "/verify/search/json" , {"request_id" : request_id }
310- )
311-
312- def cancel_verification (self , request_id ):
313- return self .post (
314- self .api_host (),
315- "/verify/control/json" ,
316- {"request_id" : request_id , "cmd" : "cancel" },
317- )
318-
319- def trigger_next_verification_event (self , request_id ):
320- return self .post (
321- self .api_host (),
322- "/verify/control/json" ,
323- {"request_id" : request_id , "cmd" : "trigger_next_event" },
324- )
325-
326- def control_verification_request (self , params = None , ** kwargs ):
327- warnings .warn (
328- "nexmo.Client#control_verification_request is deprecated" ,
329- DeprecationWarning ,
330- stacklevel = 2 ,
331- )
332-
333- return self .post (self .api_host (), "/verify/control/json" , params or kwargs )
334-
335231 def get_basic_number_insight (self , params = None , ** kwargs ):
336232 return self .get (self .api_host (), "/ni/basic/json" , params or kwargs )
337233
@@ -410,41 +306,6 @@ def delete_application(self, application_id):
410306 "/v1/applications/{application_id}" .format (application_id = application_id ),
411307 )
412308
413- def create_call (self , params = None , ** kwargs ):
414- return self ._jwt_signed_post ("/v1/calls" , params or kwargs )
415-
416- def get_calls (self , params = None , ** kwargs ):
417- return self ._jwt_signed_get ("/v1/calls" , params or kwargs )
418-
419- def get_call (self , uuid ):
420- return self ._jwt_signed_get ("/v1/calls/{uuid}" .format (uuid = uuid ))
421-
422- def update_call (self , uuid , params = None , ** kwargs ):
423- return self ._jwt_signed_put (
424- "/v1/calls/{uuid}" .format (uuid = uuid ), params or kwargs
425- )
426-
427- def send_audio (self , uuid , params = None , ** kwargs ):
428- return self ._jwt_signed_put (
429- "/v1/calls/{uuid}/stream" .format (uuid = uuid ), params or kwargs
430- )
431-
432- def stop_audio (self , uuid ):
433- return self ._jwt_signed_delete ("/v1/calls/{uuid}/stream" .format (uuid = uuid ))
434-
435- def send_speech (self , uuid , params = None , ** kwargs ):
436- return self ._jwt_signed_put (
437- "/v1/calls/{uuid}/talk" .format (uuid = uuid ), params or kwargs
438- )
439-
440- def stop_speech (self , uuid ):
441- return self ._jwt_signed_delete ("/v1/calls/{uuid}/talk" .format (uuid = uuid ))
442-
443- def send_dtmf (self , uuid , params = None , ** kwargs ):
444- return self ._jwt_signed_put (
445- "/v1/calls/{uuid}/dtmf" .format (uuid = uuid ), params or kwargs
446- )
447-
448309 def get_recording (self , url ):
449310 hostname = urlparse (url ).hostname
450311 return self .parse (hostname , self .session .get (url , headers = self ._headers ()))
@@ -679,43 +540,6 @@ def parse(self, host, response):
679540 )
680541 raise ServerError (message )
681542
682- def _jwt_signed_get (self , request_uri , params = None ):
683- uri = "https://{api_host}{request_uri}" .format (
684- api_host = self .api_host (), request_uri = request_uri
685- )
686-
687- return self .parse (
688- self .api_host (),
689- self .session .get (uri , params = params or {}, headers = self ._headers ()),
690- )
691-
692- def _jwt_signed_post (self , request_uri , params ):
693- uri = "https://{api_host}{request_uri}" .format (
694- api_host = self .api_host (), request_uri = request_uri
695- )
696-
697- return self .parse (
698- self .api_host (), self .session .post (uri , json = params , headers = self ._headers ())
699- )
700-
701- def _jwt_signed_put (self , request_uri , params ):
702- uri = "https://{api_host}{request_uri}" .format (
703- api_host = self .api_host (), request_uri = request_uri
704- )
705-
706- return self .parse (
707- self .api_host (), self .session .put (uri , json = params , headers = self ._headers ())
708- )
709-
710- def _jwt_signed_delete (self , request_uri ):
711- uri = "https://{api_host}{request_uri}" .format (
712- api_host = self .api_host (), request_uri = request_uri
713- )
714-
715- return self .parse (
716- self .api_host (), self .session .delete (uri , headers = self ._headers ())
717- )
718-
719543 def _headers (self ):
720544 token = self .generate_application_jwt ()
721545 return dict (self .headers , Authorization = b"Bearer " + token )
0 commit comments