From d87e897a56c012184bd1ca0585a52a690a4c79f0 Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Wed, 7 May 2025 21:28:17 +0300 Subject: [PATCH] fix update user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Испрлавена активность юзера и обновление его данных. --- database.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/database.py b/database.py index ca9cb90d..d818452f 100644 --- a/database.py +++ b/database.py @@ -846,9 +846,31 @@ async def upsert_user( if only_if_exists: logger.debug(f"[upsert_user] Режим only_if_exists: проверяю наличие пользователя {tg_id}") + exists = await conn.fetchval("SELECT EXISTS(SELECT 1 FROM users WHERE tg_id = $1)", tg_id) + if not exists: + return None + user_data = await conn.fetchrow( - "SELECT tg_id, username, first_name, last_name, language_code, is_bot, created_at, updated_at FROM users WHERE tg_id = $1", + """ + UPDATE users + SET + username = COALESCE($2, username), + first_name = COALESCE($3, first_name), + last_name = COALESCE($4, last_name), + language_code = COALESCE($5, language_code), + is_bot = $6, + updated_at = CURRENT_TIMESTAMP + WHERE tg_id = $1 + RETURNING + tg_id, username, first_name, last_name, language_code, + is_bot, created_at, updated_at + """, tg_id, + username, + first_name, + last_name, + language_code, + is_bot, ) return dict(user_data) if user_data else None