Repository Reference
The repository.Repository struct handles all database interactions. It supports multiple SQL dialects (SQLite, PostgreSQL, MySQL) via bob.
type Repository struct {
// ...
}
Constructor
Open
Opens a database connection and returns a Repository instance.
func Open(opts Opts) (*Repository, error)
New
Creates a Repository from an existing sql.DB connection.
func New(db *sql.DB, dialect string) *Repository
User Methods
UserCreate
Inserts a new user record. automatically sets CreatedAt and UpdatedAt to the current UTC time if they are not provided.
func (r Repository) UserCreate(ctx context.Context, user *models.User) (*models.User, error)
UserGetByEmail
Retrieves a user by email.
func (r Repository) UserGetByEmail(ctx context.Context, email string) (*models.User, error)
UserGetByID
Retrieves a user by ID (UUID).
func (r Repository) UserGetByID(ctx context.Context, id string) (*models.User, error)
UserGetByProvider
Retrieves a user by OAuth2 provider ID.
func (r Repository) UserGetByProvider(ctx context.Context, provider, providerID string) (*models.User, error)
UserUpdate
Updates an existing user record. Automatically updates UpdatedAt to the current UTC time.
func (r Repository) UserUpdate(ctx context.Context, user *models.User) (*models.User, error)
UserDelete
Deletes a user record.
func (r Repository) UserDelete(ctx context.Context, id string) error
Token Methods
TokenCreate
Stores a new refresh token or other temporary token (reset, magic link).
func (r Repository) TokenCreate(ctx context.Context, token *models.Token) (*models.Token, error)
TokenGetByToken
Retrieves a token record by its value.
func (r Repository) TokenGetByToken(ctx context.Context, tokenValue string) (*models.Token, error)
TokenRevoke
Marks a token as revoked.
func (r Repository) TokenRevoke(ctx context.Context, id string) error
TokenDelete
Permanently deletes a token.
func (r Repository) TokenDelete(ctx context.Context, id string) error