from twilio.rest import Client

from constants import ACCOUNT_ID, SMS_SENDER, TOKEN
from database.crud import fetch_otp


def create_twilio_client(account_sid, auth_token):
    client = Client(account_sid, auth_token)
    return client


def send_otp(data, db):
    client = create_twilio_client(account_sid=ACCOUNT_ID, auth_token=TOKEN)
    code = fetch_otp(access_key=data.access_key, db=db)
    message = "Your OTP code is {0}".format(code)
    client.messages.create(to=data.mobile, from_=SMS_SENDER, body=message)