summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth <elizabeth@simponic.xyz>2024-04-04 15:17:56 -0600
committerElizabeth <elizabeth@simponic.xyz>2024-04-04 15:17:56 -0600
commitc24e34ae856204f4299ddda26c5877a1abaf2e73 (patch)
treee8bb607012b1e504261c474ccc1a570252bf91dc
parentd9d39a01f24922b6de6ad65ceebcb3da501d2790 (diff)
parent569d2788ebfb90774faf361f62bfe7968e091465 (diff)
downloadhatecomputers.club-c24e34ae856204f4299ddda26c5877a1abaf2e73.tar.gz
hatecomputers.club-c24e34ae856204f4299ddda26c5877a1abaf2e73.zip
Merge branch 'main' into dont-be-authoritative
-rw-r--r--database/users.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/database/users.go b/database/users.go
index f438281..5cebb8f 100644
--- a/database/users.go
+++ b/database/users.go
@@ -5,6 +5,7 @@ import (
"log"
"time"
+ "git.hatecomputers.club/hatecomputers/hatecomputers.club/utils"
_ "github.com/mattn/go-sqlite3"
)
@@ -50,12 +51,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
}
@@ -67,8 +63,9 @@ func MakeUserSessionFor(dbConn *sql.DB, user *User) (*UserSession, error) {
log.Println("making session for user", user.ID)
expireAt := time.Now().Add(time.Hour * 12)
+ sessionId := utils.RandomId()
- _, err := dbConn.Exec(`INSERT OR REPLACE INTO user_sessions (id, user_id, expire_at) VALUES (?, ?, ?);`, user.ID, user.ID, time.Now().Add(ExpiryDuration))
+ _, err := dbConn.Exec(`INSERT OR REPLACE INTO user_sessions (id, user_id, expire_at) VALUES (?, ?, ?);`, sessionId, user.ID, time.Now().Add(ExpiryDuration))
if err != nil {
log.Println(err)
@@ -76,7 +73,7 @@ func MakeUserSessionFor(dbConn *sql.DB, user *User) (*UserSession, error) {
}
return &UserSession{
- ID: user.ID,
+ ID: sessionId,
UserID: user.ID,
ExpireAt: expireAt,
}, nil