aboutsummaryrefslogtreecommitdiff
path: root/app/func/signup.py
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-02-25 02:15:31 -0600
committerParker <contact@pkrm.dev>2024-02-25 02:15:31 -0600
commit0ea4abca33363f0bbdffa181b60beefc247774fa (patch)
tree0a6dcd17d5a6d7d9fdb1395548fb33cedf559f2c /app/func/signup.py
parentf3ff78bc8db5d8e7938407a62d56410cc72ce3a7 (diff)
Creation
Diffstat (limited to 'app/func/signup.py')
-rw-r--r--app/func/signup.py24
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