From bce756b9aa51dfdfa2c2e6cdef4f88f660b80148 Mon Sep 17 00:00:00 2001 From: Parker Date: Mon, 26 Feb 2024 20:55:05 -0600 Subject: Overhaul: Flask -> FastAPI --- app/func/generate_api_key.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 app/func/generate_api_key.py (limited to 'app/func/generate_api_key.py') diff --git a/app/func/generate_api_key.py b/app/func/generate_api_key.py new file mode 100644 index 0000000..a40c96a --- /dev/null +++ b/app/func/generate_api_key.py @@ -0,0 +1,23 @@ +import sqlalchemy +from sqlalchemy import exc +import random +import string + +from db import engine + +""" +Generate and return a randomized API key string for the user +Keys are composed of 20 uppercase ASCII characters +""" +def generate_api_key(): + with engine.begin() as conn: + while True: + try: + api_key_string = ''.join(random.choices(string.ascii_uppercase, k=20)) + conn.execute(sqlalchemy.text('INSERT INTO keys(api_key) VALUES(:api_key)'), [{'api_key': api_key_string}]) + conn.commit() + break + except exc.IntegrityError: + continue + + return api_key_string \ No newline at end of file -- cgit v1.2.3-70-g09d2