summaryrefslogtreecommitdiff
path: root/database/users.go
diff options
context:
space:
mode:
authorsimponic <simponic@hatecomputers.club>2024-04-02 16:41:21 -0400
committersimponic <simponic@hatecomputers.club>2024-04-02 16:41:21 -0400
commit09215bc6164296a4f4178e603e01e651700997f2 (patch)
tree353af842928a47cd951e465862d80e5885f6c38a /database/users.go
parent1fb45f8c4aca0d0d61b017d4b7afe24d0157fd18 (diff)
parent161dcbad206220970a3ef8229ca7c287fb4f6365 (diff)
downloadhatecomputers.club-09215bc6164296a4f4178e603e01e651700997f2.tar.gz
hatecomputers.club-09215bc6164296a4f4178e603e01e651700997f2.zip
Merge pull request 'Make user login atomic' (#4) from user-login-upsert into main
Reviewed-on: https://git.hatecomputers.club/hatecomputers/hatecomputers.club/pulls/4
Diffstat (limited to 'database/users.go')
-rw-r--r--database/users.go7
1 files changed, 1 insertions, 6 deletions
diff --git a/database/users.go b/database/users.go
index f438281..63e7957 100644
--- a/database/users.go
+++ b/database/users.go
@@ -50,12 +50,7 @@ func GetUser(dbConn *sql.DB, id string) (*User, error) {
func FindOrSaveUser(dbConn *sql.DB, user *User) (*User, error) {
log.Println("finding or saving user", user.ID)
- _, err := dbConn.Exec(`INSERT OR IGNORE INTO users (id, mail, username, display_name) VALUES (?, ?, ?, ?);`, user.ID, user.Mail, user.Username, user.DisplayName)
- if err != nil {
- return nil, err
- }
-
- _, err = dbConn.Exec(`UPDATE users SET mail = ?, username = ?, display_name = ? WHERE id = ?;`, user.Mail, user.Username, user.DisplayName, user.ID)
+ _, err := dbConn.Exec(`INSERT INTO users (id, mail, username, display_name) VALUES (?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET mail = excluded.mail, username = excluded.username, display_name = excluded.display_name;`, user.ID, user.Mail, user.Username, user.DisplayName)
if err != nil {
return nil, err
}