[server][core] Inline AccessTokenById, access_tokens.sql

This commit is contained in:
Abhishek Shroff
2025-03-31 22:01:27 +05:30
parent 1f2f5bf588
commit d72129be1a
3 changed files with 25 additions and 65 deletions

View File

@@ -1,44 +0,0 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.26.0
// source: access_tokens.sql
package db
import (
"context"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgtype"
)
const accessTokenById = `-- name: AccessTokenById :one
SELECT t.expires, u.username, u.display_name, u.permissions, u.root, u.home
FROM access_tokens t
JOIN users u
ON t.username = u.username
WHERE t.id = $1
`
type AccessTokenByIdRow struct {
Expires pgtype.Timestamp
Username string
DisplayName string
Permissions int32
Root uuid.UUID
Home uuid.UUID
}
func (q *Queries) AccessTokenById(ctx context.Context, id string) (AccessTokenByIdRow, error) {
row := q.db.QueryRow(ctx, accessTokenById, id)
var i AccessTokenByIdRow
err := row.Scan(
&i.Expires,
&i.Username,
&i.DisplayName,
&i.Permissions,
&i.Root,
&i.Home,
)
return i, err
}

View File

@@ -5,6 +5,7 @@ import (
"time"
"unsafe"
"github.com/google/uuid"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgtype"
"github.com/shroff/phylum/server/internal/core/errors"
@@ -48,24 +49,33 @@ func (m manager) CreateAccessToken(username string) (string, error) {
}
func (m manager) ReadAccessToken(accessToken string) (User, error) {
token, err := m.db.AccessTokenById(m.ctx, accessToken)
if errors.Is(err, pgx.ErrNoRows) {
return User{}, ErrCredentialsInvalid
} else if err != nil {
const q = `SELECT t.expires, u.username, u.display_name, u.permissions, u.root, u.home FROM access_tokens t JOIN users u ON t.username = u.username WHERE t.id = $1; `
row := m.db.QueryRow(m.ctx, q, accessToken)
var expires pgtype.Timestamp
var username string
var displayName string
var permissions int32
var root uuid.UUID
var home uuid.UUID
if err := row.Scan(&expires, &username, &displayName, &permissions, &root, &home); err != nil {
if errors.Is(err, pgx.ErrNoRows) {
err = ErrCredentialsInvalid
}
return User{}, err
}
if time.Now().After(token.Expires.Time) {
} else if time.Now().After(expires.Time) {
return User{}, ErrCredentialsInvalid
} else {
return User{
BasicUser: BasicUser{
Username: username,
DisplayName: displayName,
},
Permissions: permissions,
Root: root,
Home: home,
}, nil
}
return User{
BasicUser: BasicUser{
Username: token.Username,
DisplayName: token.DisplayName,
},
Permissions: token.Permissions,
Root: token.Root,
Home: token.Home,
}, nil
}
const (

View File

@@ -1,6 +0,0 @@
-- name: AccessTokenById :one
SELECT t.expires, u.username, u.display_name, u.permissions, u.root, u.home
FROM access_tokens t
JOIN users u
ON t.username = u.username
WHERE t.id = $1;