2020-03-18 20:56:06 +01:00
|
|
|
from twilio.rest import Client
|
|
|
|
from secrets import randbits
|
2020-06-05 01:09:55 +02:00
|
|
|
from constants import ACCOUNT_ID, TOKEN, SMS_SENDER
|
2020-04-19 21:30:41 +02:00
|
|
|
from database.crud import save_otp
|
2020-03-18 20:56:06 +01:00
|
|
|
|
|
|
|
|
2020-09-12 19:34:11 +02:00
|
|
|
def connect_api():
|
2020-06-05 01:09:55 +02:00
|
|
|
account_sid = ACCOUNT_ID
|
|
|
|
auth_token = TOKEN
|
2020-03-18 20:56:06 +01:00
|
|
|
client = Client(account_sid, auth_token)
|
|
|
|
return client
|
|
|
|
|
|
|
|
|
2020-09-12 19:34:11 +02:00
|
|
|
def generate_code():
|
2020-03-18 20:56:06 +01:00
|
|
|
bits = 16
|
2020-03-23 21:17:16 +01:00
|
|
|
code = randbits(bits)
|
2020-03-18 20:56:06 +01:00
|
|
|
return code
|
|
|
|
|
|
|
|
|
2020-09-12 19:34:11 +02:00
|
|
|
def send_otp(receiver):
|
2020-03-18 20:56:06 +01:00
|
|
|
client = connect_api()
|
|
|
|
code = generate_code()
|
|
|
|
message = "Your OTP code is {0}".format(code)
|
2020-06-05 01:09:55 +02:00
|
|
|
client.messages.create(to=receiver, from_=SMS_SENDER, body=message)
|
2020-04-19 21:30:41 +02:00
|
|
|
save_otp(receiver, code)
|