database

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

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

func NewDatabase

func NewDatabase(dsn string, opts ...DatabaseOption) (*Database, error)

func (*Database) Close

func (d *Database) Close() error

func (*Database) CreateUser

func (d *Database) CreateUser(username, email string) (*User, error)

func (*Database) DeleteDevice

func (d *Database) DeleteDevice(userID, deviceID string) error

func (*Database) DeleteUser

func (d *Database) DeleteUser(userID string) error

func (*Database) GetDeviceSecret

func (d *Database) GetDeviceSecret(deviceID string) (string, error)

func (*Database) GetUserFromEmail

func (d *Database) GetUserFromEmail(email string) (*User, error)

func (*Database) GetUserFromID

func (d *Database) GetUserFromID(userID string) (*User, error)

func (*Database) SaveDeviceSecret

func (d *Database) SaveDeviceSecret(userID, deviceName, secret string) (string, error)

func (*Database) UpdateDeviceSecret

func (d *Database) UpdateDeviceSecret(deviceID, secret string) error

func (*Database) UpdateUsername

func (d *Database) UpdateUsername(userID string, newUsername string) error

type DatabaseOption

type DatabaseOption func(*databaseOptions)

func FromEnv

func FromEnv() DatabaseOption

func WithCleanupInterval

func WithCleanupInterval(d time.Duration) DatabaseOption

func WithConnMaxIdleTime

func WithConnMaxIdleTime(d time.Duration) DatabaseOption

func WithConnMaxLifetime

func WithConnMaxLifetime(d time.Duration) DatabaseOption

func WithMaxIdleConns

func WithMaxIdleConns(n int) DatabaseOption

func WithMaxOpenConns

func WithMaxOpenConns(n int) DatabaseOption

type User

type User struct {
	UserID   string `json:"user_id"`
	Username string `json:"username"`
	Email    string `json:"email"`
}

type UserDevice

type UserDevice struct {
	UserID     string `json:"user_id"`
	DeviceID   string `json:"device_id"`
	DeviceName string `json:"device_name"`
	Secret     string `json:"secret,omitempty"`
	UpdatedAt  string `json:"updated_at,omitempty"`
}

Jump to

Keyboard shortcuts

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