diff options
Diffstat (limited to 'app/func/signup.py')
-rw-r--r-- | app/func/signup.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/func/signup.py b/app/func/signup.py new file mode 100644 index 0000000..f7c19a2 --- /dev/null +++ b/app/func/signup.py @@ -0,0 +1,24 @@ +import sqlalchemy +from sqlalchemy import exc +import random +import string + +from db import engine + +""" +Generate and return a randomized account string for the user +Account strings function as API authenticaton keys and are composed +of 20 uppercase ASCII characters +""" +def generate_account(): + with engine.begin() as conn: + while True: + try: + account_string = ''.join(random.choices(string.ascii_uppercase, k=20)) + conn.execute(sqlalchemy.text('INSERT INTO accounts(account_name) VALUES(:account_name)'), [{'account_name': account_string}]) + conn.commit() + break + except exc.IntegrityError: + continue + + return account_string
\ No newline at end of file |