From 03e42d9a4359b5490fce81145badfd4b57345b06 Mon Sep 17 00:00:00 2001 From: Luna Mendes Date: Sun, 4 Nov 2018 23:46:18 -0300 Subject: [PATCH] users: use UPSERT when setting chan overrides - channels: fix UPSERT --- litecord/blueprints/channels.py | 3 +-- litecord/blueprints/users.py | 25 +++++++++++-------------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/litecord/blueprints/channels.py b/litecord/blueprints/channels.py index c3cb7dc..dea2411 100644 --- a/litecord/blueprints/channels.py +++ b/litecord/blueprints/channels.py @@ -326,8 +326,7 @@ async def channel_ack(user_id, guild_id, channel_id, message_id: int = None): (user_id, channel_id, last_message_id, mention_count) VALUES ($1, $2, $3, 0) - ON CONFLICT - DO UPDATE user_read_state + ON CONFLICT DO UPDATE SET last_message_id = $3, mention_count = 0 WHERE user_id = $1 AND channel_id = $2 """, user_id, channel_id, message_id) diff --git a/litecord/blueprints/users.py b/litecord/blueprints/users.py index 49d8cb6..32bd8f0 100644 --- a/litecord/blueprints/users.py +++ b/litecord/blueprints/users.py @@ -446,20 +446,17 @@ async def patch_guild_settings(guild_id: int): continue for field in chan_overrides: - res = await app.db.execute(f""" - UPDATE guild_settings_channel_overrides - SET {field} = $1 - WHERE user_id = $2 - AND guild_id = $3 - AND channel_id = $4 - """, chan_overrides[field], user_id, guild_id, chan_id) - - if res == 'UPDATE 0': - await app.db.execute(f""" - INSERT INTO guild_settings_channel_overrides - (user_id, guild_id, channel_id, {field}) - VALUES ($1, $2, $3, $4) - """, user_id, guild_id, chan_id, chan_overrides[field]) + await app.db.execute(f""" + INSERT INTO guild_settings_channel_overrides + (user_id, guild_id, channel_id, {field}) + VALUES + ($1, $2, $3, $4) + ON CONFLICT DO UPDATE + SET {field} = $4 + WHERE user_id = $1 + AND guild_id = $2 + AND channel_id = $3 + """, user_id, guild_id, chan_id, chan_overrides[field]) settings = await app.storage.get_guild_settings_one(user_id, guild_id)