db

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NotFound = pgx.ErrNoRows
)

Functions

func GetTestDatabaseURL added in v0.19.2

func GetTestDatabaseURL() string

func Migrate

func Migrate(databaseUrl string) error

Types

type AddUserBanParams added in v0.19.2

type AddUserBanParams struct {
	UserID string
	Reason string
}

type BannedUser

type BannedUser struct {
	ID         int32
	UserID     string
	CreatedAt  time.Time
	Reason     string
	LiftedAt   sql.NullTime
	LiftReason sql.NullString
}

type CountInstanceForUserAndFilterParams

type CountInstanceForUserAndFilterParams struct {
	UserID     string
	FilterName string
}

type CreateInstanceForUserAndFilterParams

type CreateInstanceForUserAndFilterParams struct {
	UserID     string
	FilterName string
	Params     pgtype.JSONB
	TestMode   bool
}

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 DeleteInstanceForUserAndFilterParams

type DeleteInstanceForUserAndFilterParams struct {
	UserID     string
	FilterName string
}

type FilterInstance

type FilterInstance struct {
	ID           int32
	UserID       string
	FilterListID int32
	FilterName   string
	Params       pgtype.JSONB
	CreatedAt    time.Time
	UpdatedAt    sql.NullTime
	TestMode     bool
}

type FilterList

type FilterList struct {
	ID           int32
	UserID       string
	Token        uuid.UUID
	CreatedAt    time.Time
	Downloaded   bool
	DownloadedAt sql.NullTime
}

type GetActiveFiltersForUserRow

type GetActiveFiltersForUserRow struct {
	FilterName string
	Params     pgtype.JSONB
	TestMode   bool
}

type GetInstanceForUserAndFilterParams

type GetInstanceForUserAndFilterParams struct {
	UserID     string
	FilterName string
}

type GetInstanceForUserAndFilterRow added in v0.21.0

type GetInstanceForUserAndFilterRow struct {
	Params   pgtype.JSONB
	TestMode bool
}

type GetInstanceStatsRow

type GetInstanceStatsRow struct {
	Total      int64
	Fresh      int64
	FilterName string
}

type GetInstancesForListRow

type GetInstancesForListRow struct {
	FilterName string
	Params     pgtype.JSONB
	TestMode   bool
}

type GetListForTokenRow

type GetListForTokenRow struct {
	ID         int32
	UserID     string
	Downloaded bool
}

type GetListForUserRow

type GetListForUserRow struct {
	Token         uuid.UUID
	Downloaded    bool
	InstanceCount int64
}

type GetStatsRow

type GetStatsRow struct {
	ListsTotal  int64
	ListsActive int64
	ListsFresh  int64
}

type LiftUserBanParams added in v0.19.2

type LiftUserBanParams struct {
	UserID     string
	LiftReason sql.NullString
}

type Querier

type Querier interface {
	AddUserBan(ctx context.Context, arg AddUserBanParams) error
	CountInstanceForUserAndFilter(ctx context.Context, arg CountInstanceForUserAndFilterParams) (int64, error)
	CountListsForUser(ctx context.Context, userID string) (int64, error)
	CreateInstanceForUserAndFilter(ctx context.Context, arg CreateInstanceForUserAndFilterParams) error
	CreateListForUser(ctx context.Context, userID string) (uuid.UUID, error)
	DeleteInstanceForUserAndFilter(ctx context.Context, arg DeleteInstanceForUserAndFilterParams) error
	GetActiveFiltersForUser(ctx context.Context, userID string) ([]GetActiveFiltersForUserRow, error)
	GetBannedUsers(ctx context.Context) ([]string, error)
	GetInstanceForUserAndFilter(ctx context.Context, arg GetInstanceForUserAndFilterParams) (GetInstanceForUserAndFilterRow, error)
	GetInstanceStats(ctx context.Context) ([]GetInstanceStatsRow, error)
	GetInstancesForList(ctx context.Context, filterListID int32) ([]GetInstancesForListRow, error)
	GetListForToken(ctx context.Context, token uuid.UUID) (GetListForTokenRow, error)
	GetListForUser(ctx context.Context, userID string) (GetListForUserRow, error)
	GetStats(ctx context.Context) (GetStatsRow, error)
	GetUserPreferences(ctx context.Context, userID string) (UserPreference, error)
	HasUserDownloadedList(ctx context.Context, userID string) (bool, error)
	InitUserPreferences(ctx context.Context, userID string) (UserPreference, error)
	LiftUserBan(ctx context.Context, arg LiftUserBanParams) error
	MarkListDownloaded(ctx context.Context, token uuid.UUID) error
	RotateListToken(ctx context.Context, arg RotateListTokenParams) error
	UpdateInstanceForUserAndFilter(ctx context.Context, arg UpdateInstanceForUserAndFilterParams) error
	UpdateNewsCursor(ctx context.Context, arg UpdateNewsCursorParams) error
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) AddUserBan added in v0.19.2

func (q *Queries) AddUserBan(ctx context.Context, arg AddUserBanParams) error

func (*Queries) CountInstanceForUserAndFilter

func (q *Queries) CountInstanceForUserAndFilter(ctx context.Context, arg CountInstanceForUserAndFilterParams) (int64, error)

func (*Queries) CountListsForUser

func (q *Queries) CountListsForUser(ctx context.Context, userID string) (int64, error)

func (*Queries) CreateInstanceForUserAndFilter

func (q *Queries) CreateInstanceForUserAndFilter(ctx context.Context, arg CreateInstanceForUserAndFilterParams) error

func (*Queries) CreateListForUser

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

func (*Queries) DeleteInstanceForUserAndFilter

func (q *Queries) DeleteInstanceForUserAndFilter(ctx context.Context, arg DeleteInstanceForUserAndFilterParams) error

func (*Queries) GetActiveFiltersForUser

func (q *Queries) GetActiveFiltersForUser(ctx context.Context, userID string) ([]GetActiveFiltersForUserRow, error)

func (*Queries) GetBannedUsers

func (q *Queries) GetBannedUsers(ctx context.Context) ([]string, error)

func (*Queries) GetInstanceStats

func (q *Queries) GetInstanceStats(ctx context.Context) ([]GetInstanceStatsRow, error)

func (*Queries) GetInstancesForList

func (q *Queries) GetInstancesForList(ctx context.Context, filterListID int32) ([]GetInstancesForListRow, error)

func (*Queries) GetListForToken

func (q *Queries) GetListForToken(ctx context.Context, token uuid.UUID) (GetListForTokenRow, error)

func (*Queries) GetListForUser

func (q *Queries) GetListForUser(ctx context.Context, userID string) (GetListForUserRow, error)

func (*Queries) GetStats

func (q *Queries) GetStats(ctx context.Context) (GetStatsRow, error)

func (*Queries) GetUserPreferences

func (q *Queries) GetUserPreferences(ctx context.Context, userID string) (UserPreference, error)

func (*Queries) HasUserDownloadedList

func (q *Queries) HasUserDownloadedList(ctx context.Context, userID string) (bool, error)

func (*Queries) InitUserPreferences

func (q *Queries) InitUserPreferences(ctx context.Context, userID string) (UserPreference, error)

func (*Queries) LiftUserBan added in v0.19.2

func (q *Queries) LiftUserBan(ctx context.Context, arg LiftUserBanParams) error

func (*Queries) MarkListDownloaded

func (q *Queries) MarkListDownloaded(ctx context.Context, token uuid.UUID) error

func (*Queries) RotateListToken

func (q *Queries) RotateListToken(ctx context.Context, arg RotateListTokenParams) error

func (*Queries) UpdateInstanceForUserAndFilter

func (q *Queries) UpdateInstanceForUserAndFilter(ctx context.Context, arg UpdateInstanceForUserAndFilterParams) error

func (*Queries) UpdateNewsCursor

func (q *Queries) UpdateNewsCursor(ctx context.Context, arg UpdateNewsCursorParams) error

func (*Queries) WithTx

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

type RotateListTokenParams

type RotateListTokenParams struct {
	UserID string
	Token  uuid.UUID
}

type Store

type Store interface {
	Querier
	RunTx(e echo.Context, f TxFunc) error
}

func Connect

func Connect(databaseUrl string) (Store, error)

func NewTestStore added in v0.19.2

func NewTestStore(t *testing.T) Store

NewTestStore instantiates an ephemeral PG schema for the test duration and ensures it is destroyed on test completion.

type TxFunc

type TxFunc func(context.Context, Querier) error

type UpdateInstanceForUserAndFilterParams

type UpdateInstanceForUserAndFilterParams struct {
	UserID     string
	FilterName string
	Params     pgtype.JSONB
	TestMode   bool
}

type UpdateNewsCursorParams

type UpdateNewsCursorParams struct {
	UserID     string
	NewsCursor time.Time
}

type UserPreference

type UserPreference struct {
	UserID       string
	NewsCursor   time.Time
	BetaFeatures bool
}

Jump to

Keyboard shortcuts

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