Add function to return the current user based off of the session cookie

This commit is contained in:
max 2022-11-04 13:58:03 -05:00
parent 6ddafff871
commit bd4f9047d9

View File

@ -22,6 +22,26 @@ type User struct {
UpdatedAt string UpdatedAt string
} }
// GetCurrentUser finds the currently logged in user by session cookie
func GetCurrentUser(app *app.App, r *http.Request) (User, error) {
cookie, err := r.Cookie("session")
if err != nil {
log.Println("Error getting session cookie")
return User{}, err
}
var userId int64
// Query row by session cookie
err = app.Db.QueryRow("SELECT user_id FROM sessions WHERE session = $1", cookie.Value).Scan(&userId)
if err != nil {
log.Println("Error querying session row with session: " + cookie.Value)
return User{}, err
}
return GetUserById(app, userId)
}
// GetUserById finds a users table row in the database by id and returns a struct representing this row // GetUserById finds a users table row in the database by id and returns a struct representing this row
func GetUserById(app *app.App, id int64) (User, error) { func GetUserById(app *app.App, id int64) (User, error) {
user := User{} user := User{}