bingo

package
v0.0.0-...-7d85d8e Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2020 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidArgument     = errors.New("bingo: invalid argument")
	ErrMaxNumbersGenerated = errors.New("bingo: max number of numbers generated for the game")
)

ErrInvalidArgument is returned when one or more arguments are invalid.

Functions

func MakeHandler

func MakeHandler(bs Service, logger kitlog.Logger) http.Handler

MakeHandler returns a handler for the bingo service.

Types

type Service

type Service interface {
	// create a new bingo game and return its ID
	CreateGame(context.Context) (game.ID, error)

	// create a new ticket for gameID with username
	CreateTicket(context.Context, game.ID, string) (ticket.ID, error)

	// display ticket as HTML
	ShowTicket(context.Context, ticket.ID) (Ticket, error)

	// generate a random number, which has not been picked earlier for this game
	GenerateNumber(context.Context, game.ID) (int64, error)

	// returns all numbers generated so far for a game
	GetAllNumbers(context.Context, game.ID) ([]int64, error)

	// returns stats for a game.
	GetStats(context.Context, game.ID) (numbersDrawn, ticketsGenerated int, err error)
}

Service is the interface that provides bingo methods.

func NewService

func NewService(games game.Repository, tickets ticket.Repository) Service

NewService returns implementation of `Service`.

type Ticket

type Ticket struct {
	Username string  `json:"username,omitempty"`
	Cells    []int64 `json:"cells,omitempty"`
}

Ticket is a read model for tickets.

Jump to

Keyboard shortcuts

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