db

package
v0.0.0-...-41cd4ca Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2022 License: AGPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewErrAlreadyExists

func NewErrAlreadyExists(msg string) error

NewErrAlreadyExists wraps a message in an ErrAlreadyExists object.

Types

type DB

type DB interface {
	GeminiIdentity
	Instance

	Close(ctx context.Context) Error
	DoMigration(ctx context.Context) Error

	TxNew(ctx context.Context) (TxID, Error)
	TxCommit(ctx context.Context, id TxID) Error
	TxRollback(ctx context.Context, id TxID) Error
}

DB represents a database client.

type ErrAlreadyExists

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

ErrAlreadyExists is returned when a caller tries to insert a database entry that already exists in the db.

func (*ErrAlreadyExists) Error

func (e *ErrAlreadyExists) Error() string

Error returns the error message as a string.

type Error

type Error error

Error represents a database specific error.

var (
	// ErrGenID is returned when creating a new ID can't be generated for a new model.
	ErrGenID Error = fmt.Errorf("can't generate id")
	// ErrNoEntries is returned when a caller expected an entry for a query, but none was found.
	ErrNoEntries Error = fmt.Errorf("no entries")
	// ErrMultipleEntries is returned when a caller expected ONE entry for a query, but multiples were found.
	ErrMultipleEntries Error = fmt.Errorf("multiple entries")
	// ErrUnknown denotes an unknown database error.
	ErrUnknown Error = fmt.Errorf("unknown error")
)

type GeminiIdentity

type GeminiIdentity interface {
	CreateGeminiIdentity(ctx context.Context, identity *models.GeminiIdentity) Error
	ReadGeminiIdentity(ctx context.Context, id int64) (*models.GeminiIdentity, Error)
	ReadGeminiIdentityByHash(ctx context.Context, hash string) (*models.GeminiIdentity, Error)
}

type Instance

type Instance interface {
	CreateInstance(ctx context.Context, instance *models.Instance) Error
	ReadInstanceByDomain(ctx context.Context, domain string) (*models.Instance, Error)
}

type TxID

type TxID string

Directories

Path Synopsis
bun

Jump to

Keyboard shortcuts

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