diff options
Diffstat (limited to 'database/users.go')
| -rw-r--r-- | database/users.go | 33 |
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) |
