mirror of https://gitlab.com/litecord/litecord.git
users: use UPSERT when setting chan overrides
- channels: fix UPSERT
This commit is contained in:
parent
7ce59398c4
commit
03e42d9a43
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue