db

package
v0.0.0-...-89b6d9c Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2022 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TypeMysql holder for mysql database
	TypeMysql string = "MYSQL"
	// TypePostgres holder for postgres database
	TypePostgres string = "POSTGRES"
)

Variables

This section is empty.

Functions

func NewErrAlreadyExists

func NewErrAlreadyExists(msg string) error

NewErrAlreadyExists wraps a message in an ErrAlreadyExists object.

Types

type Common

type Common interface {
	// Close closes the db connections
	Close(ctx context.Context) Error
	// Create stores the object
	Create(ctx context.Context, i any) Error
	// DoMigration runs database migrations
	DoMigration(ctx context.Context) Error
	// LoadTestData adds test data to the database
	LoadTestData(ctx context.Context) Error
	// ReadByID returns a model by its ID
	ReadByID(ctx context.Context, id int64, i any) Error
	// Update updates stored data
	Update(ctx context.Context, i any) Error
}

Common wraps common database functions

type DB

type DB interface {
	Common
	Fedi
}

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 Fedi

type Fedi interface {
	// CreateFediAccount stores the federated instance and caches it
	CreateFediAccount(ctx context.Context, account *models.FediAccount) (err Error)
	// CreateFediInstance stores the federated instance and caches it
	CreateFediInstance(ctx context.Context, instance *models.FediInstance) (err Error)
	// ReadFediAccountByID returns one federated social account.
	ReadFediAccountByID(ctx context.Context, id int64) (instance *models.FediAccount, err Error)
	// ReadFediAccountByInstanceUserID returns one federated social account.
	ReadFediAccountByInstanceUserID(ctx context.Context, instance *models.FediInstance, instanceUserID string) (account *models.FediAccount, err Error)
	// ReadFediAccountByUsername returns one federated social account.
	ReadFediAccountByUsername(ctx context.Context, instance *models.FediInstance, username string) (account *models.FediAccount, err Error)
	// ReadFediInstanceByID returns one federated social instance.
	ReadFediInstanceByID(ctx context.Context, id int64) (instance *models.FediInstance, err Error)
	// ReadFediInstanceByDomain returns one federated social instance.
	ReadFediInstanceByDomain(ctx context.Context, domain string) (instance *models.FediInstance, err Error)
	// UpdateFediInstance updates the stored federated instance and caches it
	UpdateFediInstance(ctx context.Context, instance *models.FediInstance) (err Error)
}

Fedi contains functions related to federated social.

Directories

Path Synopsis
bun

Jump to

Keyboard shortcuts

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