Add GetUserByToken method to auth service

This commit is contained in:
Luis Eduardo Jeréz Girón
2024-07-20 21:38:43 -06:00
parent 8684f147d1
commit 5d73b4d553
2 changed files with 35 additions and 0 deletions
@@ -0,0 +1,28 @@
package auth
import (
"context"
"database/sql"
"errors"
"github.com/eduardolat/pgbackweb/internal/database/dbgen"
)
func (s *Service) GetUserByToken(
ctx context.Context, token string,
) (bool, dbgen.AuthServiceGetUserByTokenRow, error) {
user, err := s.dbgen.AuthServiceGetUserByToken(
ctx, dbgen.AuthServiceGetUserByTokenParams{
Token: token,
EncryptionKey: *s.env.PBW_ENCRYPTION_KEY,
},
)
if err != nil && errors.Is(err, sql.ErrNoRows) {
return false, user, nil
}
if err != nil {
return false, user, err
}
return true, user, nil
}
@@ -0,0 +1,7 @@
-- name: AuthServiceGetUserByToken :one
SELECT
users.*,
sessions.id as session_id
FROM sessions
JOIN users ON users.id = sessions.user_id
WHERE pgp_sym_decrypt(sessions.token, @encryption_key) = @token;