db

package
v0.0.0-...-8217cab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2025 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateAccountParams

type CreateAccountParams struct {
	UserID     uuid.UUID `db:"user_id" json:"userId"`
	Provider   string    `db:"provider" json:"provider"`
	ProviderID string    `db:"provider_id" json:"providerId"`
}

type CreateEmailVerificationTokenParams

type CreateEmailVerificationTokenParams struct {
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
}

type CreatePasswordResetTokenParams

type CreatePasswordResetTokenParams struct {
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
}

type CreateSessionParams

type CreateSessionParams struct {
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
	UserAgent pgtype.Text        `db:"user_agent" json:"userAgent"`
	IpAddress *netip.Addr        `db:"ip_address" json:"ipAddress"`
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type DeleteAccountParams

type DeleteAccountParams struct {
	UserID   uuid.UUID `db:"user_id" json:"userId"`
	Provider string    `db:"provider" json:"provider"`
}

type GetAccountByProviderParams

type GetAccountByProviderParams struct {
	Provider   string `db:"provider" json:"provider"`
	ProviderID string `db:"provider_id" json:"providerId"`
}

type GetAccountByProviderRow

type GetAccountByProviderRow struct {
	ID               uuid.UUID          `db:"id" json:"id"`
	UserID           uuid.UUID          `db:"user_id" json:"userId"`
	Provider         string             `db:"provider" json:"provider"`
	ProviderID       string             `db:"provider_id" json:"providerId"`
	CreatedAt        pgtype.Timestamptz `db:"created_at" json:"createdAt"`
	ID_2             uuid.UUID          `db:"id_2" json:"id2"`
	Email            string             `db:"email" json:"email"`
	HashPassword     string             `db:"hash_password" json:"hashPassword"`
	Name             pgtype.Text        `db:"name" json:"name"`
	Image            pgtype.Text        `db:"image" json:"image"`
	RoleName         string             `db:"role_name" json:"roleName"`
	EmailVerified    pgtype.Bool        `db:"email_verified" json:"emailVerified"`
	TwoFactorEnabled pgtype.Bool        `db:"two_factor_enabled" json:"twoFactorEnabled"`
	TwoFactorSecret  pgtype.Text        `db:"two_factor_secret" json:"twoFactorSecret"`
	Metadata         []byte             `db:"metadata" json:"metadata"`
	CreatedAt_2      pgtype.Timestamptz `db:"created_at_2" json:"createdAt2"`
	UpdatedAt        pgtype.Timestamptz `db:"updated_at" json:"updatedAt"`
}

type GetUserByEmailRow

type GetUserByEmailRow struct {
	ID               uuid.UUID          `db:"id" json:"id"`
	Email            string             `db:"email" json:"email"`
	HashPassword     string             `db:"hash_password" json:"hashPassword"`
	Name             pgtype.Text        `db:"name" json:"name"`
	Image            pgtype.Text        `db:"image" json:"image"`
	RoleName         string             `db:"role_name" json:"roleName"`
	EmailVerified    pgtype.Bool        `db:"email_verified" json:"emailVerified"`
	TwoFactorEnabled pgtype.Bool        `db:"two_factor_enabled" json:"twoFactorEnabled"`
	TwoFactorSecret  pgtype.Text        `db:"two_factor_secret" json:"twoFactorSecret"`
	Metadata         []byte             `db:"metadata" json:"metadata"`
	CreatedAt        pgtype.Timestamptz `db:"created_at" json:"createdAt"`
	UpdatedAt        pgtype.Timestamptz `db:"updated_at" json:"updatedAt"`
	Accounts         interface{}        `db:"accounts" json:"accounts"`
}

type GetUserByIDRow

type GetUserByIDRow struct {
	ID               uuid.UUID          `db:"id" json:"id"`
	Email            string             `db:"email" json:"email"`
	HashPassword     string             `db:"hash_password" json:"hashPassword"`
	Name             pgtype.Text        `db:"name" json:"name"`
	Image            pgtype.Text        `db:"image" json:"image"`
	RoleName         string             `db:"role_name" json:"roleName"`
	EmailVerified    pgtype.Bool        `db:"email_verified" json:"emailVerified"`
	TwoFactorEnabled pgtype.Bool        `db:"two_factor_enabled" json:"twoFactorEnabled"`
	TwoFactorSecret  pgtype.Text        `db:"two_factor_secret" json:"twoFactorSecret"`
	Metadata         []byte             `db:"metadata" json:"metadata"`
	CreatedAt        pgtype.Timestamptz `db:"created_at" json:"createdAt"`
	UpdatedAt        pgtype.Timestamptz `db:"updated_at" json:"updatedAt"`
	Accounts         interface{}        `db:"accounts" json:"accounts"`
}

type GoAuthRegisterParams

type GoAuthRegisterParams struct {
	Email        string      `db:"email" json:"email"`
	HashPassword string      `db:"hash_password" json:"hashPassword"`
	Name         pgtype.Text `db:"name" json:"name"`
	RoleName     string      `db:"role_name" json:"roleName"`
	Metadata     []byte      `db:"metadata" json:"metadata"`
}

type GoauthAccount

type GoauthAccount struct {
	ID         uuid.UUID          `db:"id" json:"id"`
	UserID     uuid.UUID          `db:"user_id" json:"userId"`
	Provider   string             `db:"provider" json:"provider"`
	ProviderID string             `db:"provider_id" json:"providerId"`
	CreatedAt  pgtype.Timestamptz `db:"created_at" json:"createdAt"`
}

type GoauthAuditLog

type GoauthAuditLog struct {
	ID         int32            `db:"id" json:"id"`
	EventType  string           `db:"event_type" json:"eventType"`
	LogEntry   []byte           `db:"log_entry" json:"logEntry"`
	OccurredAt pgtype.Timestamp `db:"occurred_at" json:"occurredAt"`
}

type GoauthEmailVerification

type GoauthEmailVerification struct {
	ID        uuid.UUID          `db:"id" json:"id"`
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
}

type GoauthPasswordReset

type GoauthPasswordReset struct {
	ID        uuid.UUID          `db:"id" json:"id"`
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
}

type GoauthSession

type GoauthSession struct {
	ID        uuid.UUID          `db:"id" json:"id"`
	UserID    uuid.UUID          `db:"user_id" json:"userId"`
	Token     string             `db:"token" json:"token"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expiresAt"`
	UserAgent pgtype.Text        `db:"user_agent" json:"userAgent"`
	IpAddress *netip.Addr        `db:"ip_address" json:"ipAddress"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
}

type GoauthUser

type GoauthUser struct {
	ID               uuid.UUID          `db:"id" json:"id"`
	Email            string             `db:"email" json:"email"`
	HashPassword     string             `db:"hash_password" json:"hashPassword"`
	Name             pgtype.Text        `db:"name" json:"name"`
	Image            pgtype.Text        `db:"image" json:"image"`
	RoleName         string             `db:"role_name" json:"roleName"`
	EmailVerified    pgtype.Bool        `db:"email_verified" json:"emailVerified"`
	TwoFactorEnabled pgtype.Bool        `db:"two_factor_enabled" json:"twoFactorEnabled"`
	TwoFactorSecret  pgtype.Text        `db:"two_factor_secret" json:"twoFactorSecret"`
	Metadata         []byte             `db:"metadata" json:"metadata"`
	CreatedAt        pgtype.Timestamptz `db:"created_at" json:"createdAt"`
	UpdatedAt        pgtype.Timestamptz `db:"updated_at" json:"updatedAt"`
}

type Querier

type Querier interface {
	// sql/queries/accounts.sql
	CreateAccount(ctx context.Context, arg CreateAccountParams) (GoauthAccount, error)
	CreateAccountIndexes(ctx context.Context) error
	CreateAccountTable(ctx context.Context) error
	CreateAuditLogTable(ctx context.Context) error
	CreateEmailVerificationTable(ctx context.Context) error
	// sql/queries/email_verification.sql
	CreateEmailVerificationToken(ctx context.Context, arg CreateEmailVerificationTokenParams) (GoauthEmailVerification, error)
	CreatePasswordResetTable(ctx context.Context) error
	// sql/queries/password_reset.sql
	CreatePasswordResetToken(ctx context.Context, arg CreatePasswordResetTokenParams) (GoauthPasswordReset, error)
	// sql/queries/sessions.sql
	CreateSession(ctx context.Context, arg CreateSessionParams) (GoauthSession, error)
	CreateSessionIndexes(ctx context.Context) error
	CreateSessionTable(ctx context.Context) error
	CreateUserIndexes(ctx context.Context) error
	CreateUserTable(ctx context.Context) error
	DeleteAccount(ctx context.Context, arg DeleteAccountParams) error
	DeleteEmailVerificationToken(ctx context.Context, token string) error
	DeleteExpiredEmailVerificationTokens(ctx context.Context) error
	DeleteExpiredPasswordResetTokens(ctx context.Context) error
	DeleteExpiredSessions(ctx context.Context) error
	DeletePasswordResetToken(ctx context.Context, token string) error
	DeleteSession(ctx context.Context, id uuid.UUID) error
	DeleteUser(ctx context.Context, id uuid.UUID) error
	DeleteUserEmailVerificationTokens(ctx context.Context, userID uuid.UUID) error
	DeleteUserPasswordResetTokens(ctx context.Context, userID uuid.UUID) error
	DeleteUserSessions(ctx context.Context, userID uuid.UUID) error
	GetAccountByProvider(ctx context.Context, arg GetAccountByProviderParams) (GetAccountByProviderRow, error)
	GetEmailVerificationToken(ctx context.Context, token string) (GoauthEmailVerification, error)
	GetPasswordResetToken(ctx context.Context, token string) (GoauthPasswordReset, error)
	GetSession(ctx context.Context, token string) (GoauthSession, error)
	GetSessionByID(ctx context.Context, id uuid.UUID) (GoauthSession, error)
	GetUserByEmail(ctx context.Context, email string) (GetUserByEmailRow, error)
	GetUserByID(ctx context.Context, userID uuid.UUID) (GetUserByIDRow, error)
	GoAuthRegister(ctx context.Context, arg GoAuthRegisterParams) (GoauthUser, error)
	// Complete setup in one command
	SetupAuthTables(ctx context.Context) error
	UpdateUser(ctx context.Context, arg UpdateUserParams) (GoauthUser, error)
	UpdateUserEmailVerified(ctx context.Context, arg UpdateUserEmailVerifiedParams) error
	UpdateUserTwoFactor(ctx context.Context, arg UpdateUserTwoFactorParams) error
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CreateAccount

func (q *Queries) CreateAccount(ctx context.Context, arg CreateAccountParams) (GoauthAccount, error)

sql/queries/accounts.sql

func (*Queries) CreateAccountIndexes

func (q *Queries) CreateAccountIndexes(ctx context.Context) error

func (*Queries) CreateAccountTable

func (q *Queries) CreateAccountTable(ctx context.Context) error

func (*Queries) CreateAuditLogTable

func (q *Queries) CreateAuditLogTable(ctx context.Context) error

func (*Queries) CreateEmailVerificationTable

func (q *Queries) CreateEmailVerificationTable(ctx context.Context) error

func (*Queries) CreateEmailVerificationToken

func (q *Queries) CreateEmailVerificationToken(ctx context.Context, arg CreateEmailVerificationTokenParams) (GoauthEmailVerification, error)

sql/queries/email_verification.sql

func (*Queries) CreatePasswordResetTable

func (q *Queries) CreatePasswordResetTable(ctx context.Context) error

func (*Queries) CreatePasswordResetToken

func (q *Queries) CreatePasswordResetToken(ctx context.Context, arg CreatePasswordResetTokenParams) (GoauthPasswordReset, error)

sql/queries/password_reset.sql

func (*Queries) CreateSession

func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (GoauthSession, error)

sql/queries/sessions.sql

func (*Queries) CreateSessionIndexes

func (q *Queries) CreateSessionIndexes(ctx context.Context) error

func (*Queries) CreateSessionTable

func (q *Queries) CreateSessionTable(ctx context.Context) error

func (*Queries) CreateUserIndexes

func (q *Queries) CreateUserIndexes(ctx context.Context) error

func (*Queries) CreateUserTable

func (q *Queries) CreateUserTable(ctx context.Context) error

func (*Queries) DeleteAccount

func (q *Queries) DeleteAccount(ctx context.Context, arg DeleteAccountParams) error

func (*Queries) DeleteEmailVerificationToken

func (q *Queries) DeleteEmailVerificationToken(ctx context.Context, token string) error

func (*Queries) DeleteExpiredEmailVerificationTokens

func (q *Queries) DeleteExpiredEmailVerificationTokens(ctx context.Context) error

func (*Queries) DeleteExpiredPasswordResetTokens

func (q *Queries) DeleteExpiredPasswordResetTokens(ctx context.Context) error

func (*Queries) DeleteExpiredSessions

func (q *Queries) DeleteExpiredSessions(ctx context.Context) error

func (*Queries) DeletePasswordResetToken

func (q *Queries) DeletePasswordResetToken(ctx context.Context, token string) error

func (*Queries) DeleteSession

func (q *Queries) DeleteSession(ctx context.Context, id uuid.UUID) error

func (*Queries) DeleteUser

func (q *Queries) DeleteUser(ctx context.Context, id uuid.UUID) error

func (*Queries) DeleteUserEmailVerificationTokens

func (q *Queries) DeleteUserEmailVerificationTokens(ctx context.Context, userID uuid.UUID) error

func (*Queries) DeleteUserPasswordResetTokens

func (q *Queries) DeleteUserPasswordResetTokens(ctx context.Context, userID uuid.UUID) error

func (*Queries) DeleteUserSessions

func (q *Queries) DeleteUserSessions(ctx context.Context, userID uuid.UUID) error

func (*Queries) GetAccountByProvider

func (q *Queries) GetAccountByProvider(ctx context.Context, arg GetAccountByProviderParams) (GetAccountByProviderRow, error)

func (*Queries) GetEmailVerificationToken

func (q *Queries) GetEmailVerificationToken(ctx context.Context, token string) (GoauthEmailVerification, error)

func (*Queries) GetPasswordResetToken

func (q *Queries) GetPasswordResetToken(ctx context.Context, token string) (GoauthPasswordReset, error)

func (*Queries) GetSession

func (q *Queries) GetSession(ctx context.Context, token string) (GoauthSession, error)

func (*Queries) GetSessionByID

func (q *Queries) GetSessionByID(ctx context.Context, id uuid.UUID) (GoauthSession, error)

func (*Queries) GetUserByEmail

func (q *Queries) GetUserByEmail(ctx context.Context, email string) (GetUserByEmailRow, error)

func (*Queries) GetUserByID

func (q *Queries) GetUserByID(ctx context.Context, userID uuid.UUID) (GetUserByIDRow, error)

func (*Queries) GoAuthRegister

func (q *Queries) GoAuthRegister(ctx context.Context, arg GoAuthRegisterParams) (GoauthUser, error)

func (*Queries) SetupAuthTables

func (q *Queries) SetupAuthTables(ctx context.Context) error

Complete setup in one command

func (*Queries) UpdateUser

func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (GoauthUser, error)

func (*Queries) UpdateUserEmailVerified

func (q *Queries) UpdateUserEmailVerified(ctx context.Context, arg UpdateUserEmailVerifiedParams) error

func (*Queries) UpdateUserTwoFactor

func (q *Queries) UpdateUserTwoFactor(ctx context.Context, arg UpdateUserTwoFactorParams) error

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type Store

type Store struct {
	*Queries
	// contains filtered or unexported fields
}

func NewStore

func NewStore(database *pgxpool.Pool) *Store

func (*Store) Close

func (s *Store) Close()

func (*Store) WithTx

func (s *Store) WithTx(ctx context.Context, fn TxFunc) error

type TxFunc

type TxFunc func(*Queries) error

type UpdateUserEmailVerifiedParams

type UpdateUserEmailVerifiedParams struct {
	ID            uuid.UUID   `db:"id" json:"id"`
	EmailVerified pgtype.Bool `db:"email_verified" json:"emailVerified"`
}

type UpdateUserParams

type UpdateUserParams struct {
	ID       uuid.UUID   `db:"id" json:"id"`
	Name     pgtype.Text `db:"name" json:"name"`
	Image    pgtype.Text `db:"image" json:"image"`
	Metadata []byte      `db:"metadata" json:"metadata"`
}

type UpdateUserTwoFactorParams

type UpdateUserTwoFactorParams struct {
	ID               uuid.UUID   `db:"id" json:"id"`
	TwoFactorEnabled pgtype.Bool `db:"two_factor_enabled" json:"twoFactorEnabled"`
	TwoFactorSecret  pgtype.Text `db:"two_factor_secret" json:"twoFactorSecret"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL