persistence

package
v0.0.0-...-83cae81 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidPlayerID     error = errors.New(`player id not valid`)
	ErrInvalidPlayerName   error = errors.New(`player name not valid`)
	ErrPlayerNotFound      error = errors.New(`player not found`)
	ErrPlayerAlreadyExists error = errors.New(`username already exists`)

	ErrInvalidGameID         error = errors.New(`game id invalid`)
	ErrGameNotFound          error = errors.New(`game not found`)
	ErrGameInitialSave       error = errors.New(`game must be saved with no actions`)
	ErrGameActionsOutOfOrder error = errors.New(`game actions out of order`)
	ErrGameActionDecode      error = errors.New(`game actions get decode`)
	ErrGameActionWrongGame   error = errors.New(`game action for wrong game`)
	ErrGameActionWrongPlayer error = errors.New(`game action found for wrong player`)

	ErrInteractionNotFound      error = errors.New(`interaction not found`)
	ErrInteractionAlreadyExists error = errors.New(`interaction already exists`)
	ErrInteractionUnexpected    error = errors.New(`unexpected interaction`)
)

Functions

func ValidateLatestActionBelongs

func ValidateLatestActionBelongs(mg model.Game) error

Types

type DB

type DB interface {
	// Close should be called to end this thread's access to the DB
	Close() error

	// Start will start a transaction on the database
	Start() error
	// Commit will commit a transaction, if one exists
	Commit() error
	// Rollback will rollback the transaction of changes on the database
	Rollback() error

	ServicesWrapper
}

type DBFactory

type DBFactory interface {
	// New returns a new db
	New(context.Context) (DB, error)

	// Close should be called to close any connections needed on the database
	Close() error
}

type GameService

type GameService interface {
	Get(id model.GameID) (model.Game, error)
	GetAt(id model.GameID, numActions uint) (model.Game, error)

	UpdatePlayerColor(id model.GameID, pID model.PlayerID, color model.PlayerColor) error
	Begin(g model.Game) error
	Save(g model.Game) error
}

type InteractionService

type InteractionService interface {
	Get(id model.PlayerID) (interaction.PlayerMeans, error)

	Create(pm interaction.PlayerMeans) error
	Update(pm interaction.PlayerMeans) error
}

type PlayerService

type PlayerService interface {
	Get(id model.PlayerID) (model.Player, error)

	Create(p model.Player) error
	UpdateGameColor(id model.PlayerID, gID model.GameID, color model.PlayerColor) error

	BeginGame(gID model.GameID, ps []model.Player) error
}

type ServicesWrapper

type ServicesWrapper interface {
	CreatePlayer(p model.Player) error
	GetPlayer(id model.PlayerID) (model.Player, error)
	AddPlayerColorToGame(id model.PlayerID, color model.PlayerColor, gID model.GameID) error

	CreateGame(g model.Game) error
	GetGame(id model.GameID) (model.Game, error)
	GetGameAction(id model.GameID, numActions uint) (model.Game, error)
	SaveGame(g model.Game) error

	GetInteraction(id model.PlayerID) (interaction.PlayerMeans, error)
	SaveInteraction(pm interaction.PlayerMeans) error
}

Directories

Path Synopsis
qa
qa

Jump to

Keyboard shortcuts

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