postgres

package
v0.0.0-...-06cc741 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2025 License: AGPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFound = errors.New("not found")

Functions

This section is empty.

Types

type DB

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

func NewDB

func NewDB(logger *slog.Logger, pool *pgxpool.Pool) *DB

func (*DB) ApplyStatusReports

func (db *DB) ApplyStatusReports(ctx context.Context, reports []resource.InstanceStatusReport) error

ApplyStatusReports updates instances rows that are not in [instance.InstanceStateDeleted] state. all other instances will be removed from the table.

func (*DB) ChunkExists

func (db *DB) ChunkExists(ctx context.Context, id string) (bool, error)

func (*DB) ChunkOwner

func (db *DB) ChunkOwner(ctx context.Context, chunkID string) (resource.User, error)

func (*DB) CreateChunk

func (db *DB) CreateChunk(ctx context.Context, c resource.Chunk) (resource.Chunk, error)

func (*DB) CreateFlavor

func (db *DB) CreateFlavor(ctx context.Context, chunkID string, flavor resource.Flavor) (resource.Flavor, error)

func (*DB) CreateFlavorVersion

func (db *DB) CreateFlavorVersion(
	ctx context.Context,
	flavorID string,
	version resource.FlavorVersion,
	prevVersionID string,
) (resource.FlavorVersion, error)

func (*DB) CreateInstance

func (db *DB) CreateInstance(ctx context.Context, ins resource.Instance, nodeID string) (resource.Instance, error)

func (*DB) CreateUser

func (db *DB) CreateUser(ctx context.Context, u resource.User) (resource.User, error)

func (*DB) FlavorNameExists

func (db *DB) FlavorNameExists(ctx context.Context, chunkID string, name string) (bool, error)

func (*DB) FlavorOwner

func (db *DB) FlavorOwner(ctx context.Context, flavorID string) (resource.User, error)

func (*DB) FlavorVersionByID

func (db *DB) FlavorVersionByID(ctx context.Context, id string) (resource.FlavorVersion, error)

func (*DB) FlavorVersionExists

func (db *DB) FlavorVersionExists(ctx context.Context, flavorID string, version string) (bool, error)

func (*DB) FlavorVersionHashByID

func (db *DB) FlavorVersionHashByID(ctx context.Context, id string) (string, error)

func (*DB) FlavorVersionOwner

func (db *DB) FlavorVersionOwner(ctx context.Context, flavorVersionID string) (resource.User, error)

func (*DB) GetChunkByID

func (db *DB) GetChunkByID(ctx context.Context, id string) (resource.Chunk, error)

func (*DB) GetInstanceByID

func (db *DB) GetInstanceByID(ctx context.Context, id string) (resource.Instance, error)

func (*DB) GetInstancesByNodeID

func (db *DB) GetInstancesByNodeID(ctx context.Context, nodeID string) ([]resource.Instance, error)

func (*DB) GetUserByEmail

func (db *DB) GetUserByEmail(ctx context.Context, email string) (resource.User, error)

func (*DB) InsertJob

func (db *DB) InsertJob(ctx context.Context, flavorVersionID string, status string, job river.JobArgs) error

func (*DB) LatestFlavorVersion

func (db *DB) LatestFlavorVersion(ctx context.Context, flavorID string) (resource.FlavorVersion, error)

func (*DB) ListChunks

func (db *DB) ListChunks(ctx context.Context) ([]resource.Chunk, error)

func (*DB) ListInstances

func (db *DB) ListInstances(ctx context.Context) ([]resource.Instance, error)

func (*DB) MarkFlavorVersionFilesUploaded

func (db *DB) MarkFlavorVersionFilesUploaded(ctx context.Context, flavorVersionID string) error

func (*DB) MinecraftVersionExists

func (db *DB) MinecraftVersionExists(ctx context.Context, version string) (bool, error)

func (*DB) RandomNode

func (db *DB) RandomNode(ctx context.Context) (node.Node, error)

func (*DB) SetRiverClient

func (db *DB) SetRiverClient(client *river.Client[pgx.Tx])

SetRiverClient is a workaround to resolve a chicken-egg problem. river workers need to be configured before the river client can be created. workers depend on services which use the postgres.DB object. passing the river client in the postgres.DB constructor will create a circular dependency. db needs river client -> river client needs db.

func (*DB) SupportedMinecraftVersions

func (db *DB) SupportedMinecraftVersions(ctx context.Context) ([]string, error)

func (*DB) UpdateChunk

func (db *DB) UpdateChunk(ctx context.Context, c resource.Chunk) (resource.Chunk, error)

func (*DB) UpdateFlavorVersionBuildStatus

func (db *DB) UpdateFlavorVersionBuildStatus(
	ctx context.Context,
	flavorVersionID string,
	status resource.FlavorVersionBuildStatus,
) error

func (*DB) UpdateFlavorVersionPresignedURLData

func (db *DB) UpdateFlavorVersionPresignedURLData(
	ctx context.Context,
	flavorVersionID string,
	date time.Time,
	url string,
) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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