// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: personal_access_token.sql package db import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const createPersonalAccessToken = `-- name: CreatePersonalAccessToken :one INSERT INTO personal_access_token (user_id, name, token_hash, token_prefix, expires_at) VALUES ($1, $2, $3, $4, $5) RETURNING id, user_id, name, token_hash, token_prefix, expires_at, last_used_at, revoked, created_at ` type CreatePersonalAccessTokenParams struct { UserID pgtype.UUID `json:"user_id"` Name string `json:"name"` TokenHash string `json:"token_hash"` TokenPrefix string `json:"token_prefix"` ExpiresAt pgtype.Timestamptz `json:"expires_at"` } func (q *Queries) CreatePersonalAccessToken(ctx context.Context, arg CreatePersonalAccessTokenParams) (PersonalAccessToken, error) { row := q.db.QueryRow(ctx, createPersonalAccessToken, arg.UserID, arg.Name, arg.TokenHash, arg.TokenPrefix, arg.ExpiresAt, ) var i PersonalAccessToken err := row.Scan( &i.ID, &i.UserID, &i.Name, &i.TokenHash, &i.TokenPrefix, &i.ExpiresAt, &i.LastUsedAt, &i.Revoked, &i.CreatedAt, ) return i, err } const getPersonalAccessTokenByHash = `-- name: GetPersonalAccessTokenByHash :one SELECT id, user_id, name, token_hash, token_prefix, expires_at, last_used_at, revoked, created_at FROM personal_access_token WHERE token_hash = $1 AND revoked = FALSE AND (expires_at IS NULL OR expires_at > now()) ` func (q *Queries) GetPersonalAccessTokenByHash(ctx context.Context, tokenHash string) (PersonalAccessToken, error) { row := q.db.QueryRow(ctx, getPersonalAccessTokenByHash, tokenHash) var i PersonalAccessToken err := row.Scan( &i.ID, &i.UserID, &i.Name, &i.TokenHash, &i.TokenPrefix, &i.ExpiresAt, &i.LastUsedAt, &i.Revoked, &i.CreatedAt, ) return i, err } const listPersonalAccessTokensByUser = `-- name: ListPersonalAccessTokensByUser :many SELECT id, user_id, name, token_hash, token_prefix, expires_at, last_used_at, revoked, created_at FROM personal_access_token WHERE user_id = $1 AND revoked = FALSE ORDER BY created_at DESC ` func (q *Queries) ListPersonalAccessTokensByUser(ctx context.Context, userID pgtype.UUID) ([]PersonalAccessToken, error) { rows, err := q.db.Query(ctx, listPersonalAccessTokensByUser, userID) if err != nil { return nil, err } defer rows.Close() items := []PersonalAccessToken{} for rows.Next() { var i PersonalAccessToken if err := rows.Scan( &i.ID, &i.UserID, &i.Name, &i.TokenHash, &i.TokenPrefix, &i.ExpiresAt, &i.LastUsedAt, &i.Revoked, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const revokePersonalAccessToken = `-- name: RevokePersonalAccessToken :exec UPDATE personal_access_token SET revoked = TRUE WHERE id = $1 AND user_id = $2 ` type RevokePersonalAccessTokenParams struct { ID pgtype.UUID `json:"id"` UserID pgtype.UUID `json:"user_id"` } func (q *Queries) RevokePersonalAccessToken(ctx context.Context, arg RevokePersonalAccessTokenParams) error { _, err := q.db.Exec(ctx, revokePersonalAccessToken, arg.ID, arg.UserID) return err } const updatePersonalAccessTokenLastUsed = `-- name: UpdatePersonalAccessTokenLastUsed :exec UPDATE personal_access_token SET last_used_at = now() WHERE id = $1 ` func (q *Queries) UpdatePersonalAccessTokenLastUsed(ctx context.Context, id pgtype.UUID) error { _, err := q.db.Exec(ctx, updatePersonalAccessTokenLastUsed, id) return err }