From e4211d243221051f2367004225a05b13322bf8a9 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 14 Apr 2021 15:51:23 +0200 Subject: Implemented the ResumeSession function --- pkg/database/sessions.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'pkg/database/sessions.go') diff --git a/pkg/database/sessions.go b/pkg/database/sessions.go index 72930f0..2db05c8 100644 --- a/pkg/database/sessions.go +++ b/pkg/database/sessions.go @@ -31,3 +31,28 @@ func (env *DBEnv) CreateSession(user *model.User) (*string, error) { } return &token, nil } + +func (env *DBEnv) ResumeSession(token string) (*model.User, error) { + user := model.User{} + query := ` + SELECT + id, username, email + FROM + users + INNER JOIN + sessions ON users.id = sessions.user_id + WHERE + sessions.token = $1;` + err := env.db.QueryRow( + query, + token, + ).Scan( + &user.Id, + &user.Username, + &user.Email, + ) + if err != nil { + return nil, newQueryError("Could not run database query, most likely the token is invalid", err) + } + return &user, nil +} -- cgit v1.2.3