summaryrefslogtreecommitdiff
path: root/database/users.go
diff options
context:
space:
mode:
authorLizzy Hunt <lizzy.hunt@usu.edu>2024-03-29 16:35:04 -0600
committerLizzy Hunt <lizzy.hunt@usu.edu>2024-03-29 16:35:04 -0600
commit5080c566ac31ec622986c04f1812a1e88c88210e (patch)
treed8dbaa766ef21b098c5740880facc2989c750295 /database/users.go
parent7cc13887eae7dd2a61900751e038d273313d077f (diff)
downloadhatecomputers.club-5080c566ac31ec622986c04f1812a1e88c88210e.tar.gz
hatecomputers.club-5080c566ac31ec622986c04f1812a1e88c88210e.zip
guestbook!
Diffstat (limited to 'database/users.go')
-rw-r--r--database/users.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/database/users.go b/database/users.go
index f9e4436..ab48699 100644
--- a/database/users.go
+++ b/database/users.go
@@ -33,6 +33,8 @@ type UserSession struct {
}
func GetUser(dbConn *sql.DB, id string) (*User, error) {
+ log.Println("getting user", id)
+
row := dbConn.QueryRow(`SELECT id, mail, username, display_name, created_at FROM users WHERE id = ?;`, id)
var user User
@@ -46,6 +48,8 @@ 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 REPLACE INTO users (id, mail, username, display_name) VALUES (?, ?, ?, ?);`, user.ID, user.Mail, user.Username, user.DisplayName)
if err != nil {
return nil, err
@@ -55,6 +59,8 @@ func FindOrSaveUser(dbConn *sql.DB, user *User) (*User, error) {
}
func MakeUserSessionFor(dbConn *sql.DB, user *User) (*UserSession, error) {
+ log.Println("making session for user", user.ID)
+
expireAt := time.Now().Add(time.Hour * 12)
_, err := dbConn.Exec(`INSERT OR REPLACE INTO user_sessions (id, user_id, expire_at) VALUES (?, ?, ?);`, user.ID, user.ID, time.Now().Add(ExpiryDuration))
@@ -72,6 +78,8 @@ func MakeUserSessionFor(dbConn *sql.DB, user *User) (*UserSession, error) {
}
func GetSession(dbConn *sql.DB, sessionId string) (*UserSession, error) {
+ log.Println("getting session", sessionId)
+
row := dbConn.QueryRow(`SELECT id, user_id, expire_at FROM user_sessions WHERE id = ?;`, sessionId)
var id, userId string
@@ -90,6 +98,8 @@ func GetSession(dbConn *sql.DB, sessionId string) (*UserSession, error) {
}
func DeleteSession(dbConn *sql.DB, sessionId string) error {
+ log.Println("deleting session", sessionId)
+
_, err := dbConn.Exec(`DELETE FROM user_sessions WHERE id = ?;`, sessionId)
if err != nil {
log.Println(err)
@@ -126,7 +136,24 @@ func DeleteExpiredSessions(dbConn *sql.DB) error {
return nil
}
+func CountUserAPIKeys(dbConn *sql.DB, userId string) (int, error) {
+ log.Println("counting api keys for user", userId)
+
+ row := dbConn.QueryRow(`SELECT COUNT(*) FROM api_keys WHERE user_id = ?;`, userId)
+
+ var count int
+ err := row.Scan(&count)
+ if err != nil {
+ log.Println(err)
+ return 0, err
+ }
+
+ return count, nil
+}
+
func ListUserAPIKeys(dbConn *sql.DB, userId string) ([]*UserApiKey, error) {
+ log.Println("listing api keys for user", userId)
+
rows, err := dbConn.Query(`SELECT key, user_id, created_at FROM api_keys WHERE user_id = ?;`, userId)
if err != nil {
log.Println(err)
@@ -150,6 +177,8 @@ func ListUserAPIKeys(dbConn *sql.DB, userId string) ([]*UserApiKey, error) {
}
func SaveAPIKey(dbConn *sql.DB, apiKey *UserApiKey) (*UserApiKey, error) {
+ log.Println("saving api key", apiKey.Key)
+
_, err := dbConn.Exec(`INSERT OR REPLACE INTO api_keys (key, user_id) VALUES (?, ?);`, apiKey.Key, apiKey.UserID)
if err != nil {
log.Println(err)
@@ -161,6 +190,8 @@ func SaveAPIKey(dbConn *sql.DB, apiKey *UserApiKey) (*UserApiKey, error) {
}
func GetAPIKey(dbConn *sql.DB, key string) (*UserApiKey, error) {
+ log.Println("getting api key", key)
+
row := dbConn.QueryRow(`SELECT key, user_id, created_at FROM api_keys WHERE key = ?;`, key)
var apiKey UserApiKey
@@ -174,6 +205,8 @@ func GetAPIKey(dbConn *sql.DB, key string) (*UserApiKey, error) {
}
func DeleteAPIKey(dbConn *sql.DB, key string) error {
+ log.Println("deleting api key", key)
+
_, err := dbConn.Exec(`DELETE FROM api_keys WHERE key = ?;`, key)
if err != nil {
log.Println(err)