Use existing achievement row for new achievements

This commit is contained in:
Joseph Ferano 2022-02-24 12:07:06 +07:00
parent 3203842249
commit 52e263bb90

View File

@ -98,9 +98,9 @@ let addAchievement connStr (did : uint64) (achievement : string) =
[ ( "did" , Sql.string (string did) )
( "symbol", Sql.string achievement ) ]
|> Sql.query """
WITH ach AS (INSERT INTO achievement (symbol) VALUES (@symbol) RETURNING id),
usr AS (SELECT id FROM "user" WHERE discord_id = @did)
INSERT INTO user_achievements_achievement (user_id, achievement_id) SELECT usr.id, ach.id FROM usr, ach
WITH ach AS (SELECT id FROM achievement WHERE symbol = @symbol),
usr AS (SELECT id FROM "user" WHERE discord_id = @did)
INSERT INTO user_achievements_achievement (user_id, achievement_id) SELECT usr.id, ach.id FROM usr, ach;
"""
|> Sql.executeNonQueryAsync
|> Async.AwaitTask