diff --git a/.gitignore b/.gitignore index 66e5731..96b3434 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ venv +env setiings.json .vscode __pycache__ -.idea/ \ No newline at end of file +.idea/ +config.py \ No newline at end of file diff --git a/app.py b/app.py index 4c554e2..7590cf0 100644 --- a/app.py +++ b/app.py @@ -47,7 +47,7 @@ def create(): # TODO: обработка ошибок + логи tci = request.json['chatID'] cursor = db.connection.cursor() - db.query_ins_chat(tci, cursor) + db.chat_add(tci, cursor) db.close(cursor) return 'ok', 200 @@ -58,7 +58,8 @@ def start(): # Команда принимает на вход user_list = request.json['userIDs'] cursor = db.connection.cursor() for current_user in user_list: - db.query_ins_user(current_user, cursor) + db.user_add(current_user, tci, cursor) + db.connection.commit() db.close(cursor) resp = api_functions.role_distribution(user_list) return "", resp diff --git a/db.py b/db.py index d85b516..0ef0844 100644 --- a/db.py +++ b/db.py @@ -1,28 +1,32 @@ import psycopg2 - -db_params = { - 'host': '51.250.68.42', - 'database': 'postgres', - 'user': 'curator', - 'password': '4oumQk' -} - +from config import db_params +# TODO: убрать обработку ошибок отсюда и перенести в app.py connection = psycopg2.connect(**db_params) # запускаем один раз -def query_ins_user(tui, curs): +# TODO: убрать говнокод и написать нормальный запрос +# TODO: научиться формировать запросы сразу на список пользователей, так будет быстрее +def user_add(tui, tci, curs): try: - # Запрос добавления пользователя curs.execute( - f"""INSERT into public.Users(TrueUserID, role, isAlive) values ({tui}, 0)""") + f"""SELECT ChatID FROM Chats WHERE TrueChatId='{tci}'""" + ) + chat_id = curs.fetchone()[0] + curs.execute( + f"""INSERT into public.Users(TrueUserID, role, isAlive) values ({tui}, 0, false) RETURNING UserID""" + ) + user_id = curs.fetchone()[0] connection.commit() + curs.execute( + f"""INSERT into public.UsersChats(UserID, ChatID) values ({user_id}, {chat_id})""" + ) except Exception as e: print("Ошибка:", e) -def query_ins_chat(tci, curs): - try: # Запрос добавления чата +def chat_add(tci, curs): + try: curs.execute( f"""INSERT into public.Chats(TrueChatID, StateID) values ({tci}, 0)""") connection.commit() @@ -30,24 +34,5 @@ def query_ins_chat(tci, curs): print("Ошибка:", e) -def query_sel(query, curs): - try: - # Запрос вывода из БД - curs.execute("SELECT * FROM chats") - rows = curs.fetchall() - - # for row in rows: - # print(row) - - except Exception as e: - print("Ошибка:", e) - - -def query_change(x): - # Написать выдачу резов по ролям - pass - - def close(cur): cur.close() -