models

package
v0.0.0-...-6786e79 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// The minimum number of bytes to be used for each session token
	MinBytesPerToken = 32
)

Variables

View Source
var (
	// A common pattern is to add the package as a prefix to the error for context.
	ErrUsernameTaken = errors.New("models: username is already in use")
	ErrNotFound      = errors.New("models: resource could not be found")
)

Functions

func Open

func Open(config PostgresConfig) (*sql.DB, error)

Open opens a connection to the Postgres database. Callers of Open need to ensure that the connection is eventually closed by calling db.Close() method.

Types

type PostgresConfig

type PostgresConfig struct {
	Host     string
	Port     string
	User     string
	Password string
	Database string
	SSLMode  string
}

func (PostgresConfig) String

func (cfg PostgresConfig) String() string

type Session

type Session struct {
	ID        int
	UserID    int
	Token     string
	TokenHash string
}

Token is only set when creating a new session When look up a session this will be left empty, as we only store the hash of a session token in out database and we cannot reverse it into a raw token

type SessionService

type SessionService struct {
	DB *sql.DB
	// BytesPerToken is used to determine how many bytes to use when generating
	// each session token. If this value is not set or is less than the
	// MinBytesePerToken const it will be ignored and MinBytesPerToken will be used.
	BytesPerToken int
}

func (*SessionService) Create

func (service *SessionService) Create(userID int) (*Session, error)

func (*SessionService) Delete

func (service *SessionService) Delete(token string) error

func (*SessionService) User

func (service *SessionService) User(token string) (*User, error)

type User

type User struct {
	ID           int
	Username     string
	Email        sql.NullString
	PasswordHash string
	Role         string
}

type UserService

type UserService struct {
	DB *sql.DB
}

func (*UserService) Authenticate

func (us *UserService) Authenticate(username, password string) (*User, error)

func (*UserService) Create

func (us *UserService) Create(username, password, role, email string) (*User, error)

Jump to

Keyboard shortcuts

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