diff options
| author | simponic <simponic@hatecomputers.club> | 2024-04-02 16:41:21 -0400 |
|---|---|---|
| committer | simponic <simponic@hatecomputers.club> | 2024-04-02 16:41:21 -0400 |
| commit | 09215bc6164296a4f4178e603e01e651700997f2 (patch) | |
| tree | 353af842928a47cd951e465862d80e5885f6c38a /database/users.go | |
| parent | 1fb45f8c4aca0d0d61b017d4b7afe24d0157fd18 (diff) | |
| parent | 161dcbad206220970a3ef8229ca7c287fb4f6365 (diff) | |
| download | hatecomputers.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.go | 7 |
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 } |
