summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEzri Brimhall <ezri@hatecomputers.club>2024-04-02 14:31:31 -0600
committerEzri Brimhall <ezri@hatecomputers.club>2024-04-02 14:36:49 -0600
commit76fb42a61e42abc368f5cd00fd3cc636b5130643 (patch)
tree1d5b3c0106910ec4337e7c021125ef87f6e5263d
parent1fb45f8c4aca0d0d61b017d4b7afe24d0157fd18 (diff)
downloadhatecomputers.club-76fb42a61e42abc368f5cd00fd3cc636b5130643.tar.gz
hatecomputers.club-76fb42a61e42abc368f5cd00fd3cc636b5130643.zip
User login should now be atomic
-rw-r--r--database/users.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/database/users.go b/database/users.go
index f438281..ca0d2bb 100644
--- a/database/users.go
+++ b/database/users.go
@@ -50,15 +50,15 @@ 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)
+ _, 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
}
- _, err = dbConn.Exec(`UPDATE users SET mail = ?, username = ?, display_name = ? WHERE id = ?;`, user.Mail, user.Username, user.DisplayName, user.ID)
- 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)
+ // if err != nil {
+ // return nil, err
+ // }
return user, nil
}