diff options
author | Parker <contact@pkrm.dev> | 2024-02-25 02:15:31 -0600 |
---|---|---|
committer | Parker <contact@pkrm.dev> | 2024-02-25 02:15:31 -0600 |
commit | 0ea4abca33363f0bbdffa181b60beefc247774fa (patch) | |
tree | 0a6dcd17d5a6d7d9fdb1395548fb33cedf559f2c /app/func/signup.py | |
parent | f3ff78bc8db5d8e7938407a62d56410cc72ce3a7 (diff) |
Creation
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 |