db

package
v0.0.0-...-19412d7 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidUserID    = errors.New("invalid user ID")
	ErrInvalidSessionID = errors.New("invalid session ID")
)

Functions

func NewSessionID

func NewSessionID(userid string) string

Types

type Connection

type Connection interface {
	Close()
	Begin() (*sql.Tx, error)

	CreateUser(
		tx *sql.Tx,
		userid, givenName, familyName, email string,
		isPrivateEmail, isEmailVerified bool,
	) (*User, error)
	DeleteUser(tx *sql.Tx, userid string) error
	LookupUser(tx *sql.Tx, userid string) (*User, error)
	UpdateUserEmail(tx *sql.Tx, userid, email string, isPrivateEmail, forward bool) error

	CreateSession(
		tx *sql.Tx,
		user *User,
		refreshTime, expireTime time.Time,
		refreshToken, accessToken, identityToken string,
		nonce string,
		provider string,
	) (*Session, error)
	DeleteSession(tx *sql.Tx, sessionid string) error
	DeleteSessionsForUser(tx *sql.Tx, userid string) error
	LookupSession(tx *sql.Tx, sessionid string) (*Session, error)
	UpdateSessionTokens(
		tx *sql.Tx,
		session *Session,
		accessToken, refreshToken, identityToken string,
		expiresIn time.Duration,
	) error

	AddRole(tx *sql.Tx, user *User, role string) error
	RemoveRole(tx *sql.Tx, user *User, role string) error
	QueryRoles(tx *sql.Tx, user *User) ([]string, error)
}

func Connect

func Connect(settings *settings.Settings) (Connection, error)

type SQLite3

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

func (*SQLite3) AddRole

func (db *SQLite3) AddRole(tx *sql.Tx, user *User, role string) error

func (*SQLite3) Begin

func (db *SQLite3) Begin() (*sql.Tx, error)

func (*SQLite3) Close

func (db *SQLite3) Close()

func (*SQLite3) CreateSession

func (db *SQLite3) CreateSession(
	tx *sql.Tx,
	user *User,
	refreshTime, expireTime time.Time,
	refreshToken, accessToken, identityToken string,
	nonce string,
	provider string,
) (*Session, error)

func (*SQLite3) CreateUser

func (db *SQLite3) CreateUser(
	tx *sql.Tx,
	userid, givenName, familyName, email string,
	isPrivateEmail, isEmailVerified bool,
) (*User, error)

func (*SQLite3) DeleteSession

func (db *SQLite3) DeleteSession(tx *sql.Tx, sessionid string) error

func (*SQLite3) DeleteSessionsForUser

func (db *SQLite3) DeleteSessionsForUser(tx *sql.Tx, userid string) error

func (*SQLite3) DeleteUser

func (db *SQLite3) DeleteUser(tx *sql.Tx, userid string) error

func (*SQLite3) LookupSession

func (db *SQLite3) LookupSession(tx *sql.Tx, sessionid string) (*Session, error)

func (*SQLite3) LookupUser

func (db *SQLite3) LookupUser(tx *sql.Tx, userid string) (*User, error)

func (*SQLite3) QueryRoles

func (db *SQLite3) QueryRoles(tx *sql.Tx, user *User) ([]string, error)

func (*SQLite3) RemoveRole

func (db *SQLite3) RemoveRole(tx *sql.Tx, user *User, role string) error

func (*SQLite3) UpdateSessionTokens

func (db *SQLite3) UpdateSessionTokens(
	tx *sql.Tx,
	session *Session,
	accessToken, refreshToken, identityToken string,
	expiresIn time.Duration,
) error

func (*SQLite3) UpdateUserEmail

func (db *SQLite3) UpdateUserEmail(
	tx *sql.Tx,
	userid string,
	email string,
	isPrivateEmail,
	forward bool,
) error

type Session

type Session struct {
	ID            string
	UserID        string
	Nonce         string
	RefreshToken  string
	AccessToken   string
	IdentityToken string
	Provider      string
	CreateTime    time.Time
	RefreshTime   time.Time
	ExpireTime    time.Time
	// contains filtered or unexported fields
}

type User

type User struct {
	ID              string
	GivenName       string
	FamilyName      string
	Email           string
	IsPrivateEmail  bool
	IsEmailVerified bool
	CreateTime      time.Time
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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