repository

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(address string) *roomsRepository

Types

type EndMatchMessage added in v0.7.2

type EndMatchMessage struct {
	RoomID string
}

type RoomsRepository

type RoomsRepository interface {
	/*
	   events.go functions
	*/
	PublishEvent(ctx context.Context, event model.Event) error
	SubscribeToEvents(ctx context.Context, eventHandler func(event model.Event)) error

	/*
	   rooms.go functions
	*/
	InsertRoom(ctx context.Context, room *model.Room) error
	UpdateRoom(ctx context.Context, id string, name string, hostId string, maxPlayers uint32, questionCount uint32, status model.RoomStatus, lastStarted *time.Time) error
	UpdateRoomHostId(ctx context.Context, id string, hostId string) error
	UpdateRoomStatus(ctx context.Context, id string, status model.RoomStatus) error
	UpdateRoomLastStartTime(ctx context.Context, id string, lastStartedTime *time.Time) error
	UpdateRoomFinishedAnswering(ctx context.Context, id string, count uint32) error
	GetRoomById(ctx context.Context, id string) (*model.Room, error)
	CheckIfRoomExists(ctx context.Context, id string) (bool, error)

	/*
	   users.go functions
	*/
	GetUsersInRoom(ctx context.Context, roomId string) ([]string, error)
	InsertUserInRoom(ctx context.Context, userId string, roomId string, expiresIn time.Duration) error
	RemoveUserFromRoom(ctx context.Context, userId string, roomId string) error
	GetRoomPlayersCount(ctx context.Context, id string) (uint32, error)
	IsUserInRoom(ctx context.Context, roomID string, userID string) (bool, error)

	/*
	   questions.go functions
	*/
	GetQuestionCount(ctx context.Context, roomId string) (int, error)
	ClearQuestionSet(ctx context.Context, roomId string) error
	SaveQuestionSet(ctx context.Context, roomId string, questionSet string) error
	GetQuestionSet(ctx context.Context, roomId string) (string, error)

	/*
	   endmatch.go functions
	*/
	PublishEndMatch(ctx context.Context, roomID string) error
	SubscribeToEndMatch(ctx context.Context, roomID string) (<-chan EndMatchMessage, error)
	SetPlayersYetToFinish(ctx context.Context, roomID string, players []string) error
	PlayersYetToFinish(ctx context.Context, roomID string) (map[string]struct{}, error)
	RemoveFromPlayersYetToFinish(ctx context.Context, roomID, playerId string) error

	/*
	   ban.go functions
	*/
	GetBannedUsersFromRoom(ctx context.Context, roomId string) ([]string, error)
	BanUserFromRoom(ctx context.Context, userId string, roomId string) error
	UnbanUserFromRoom(ctx context.Context, userId string, roomId string) error
	IsUserBannedFromRoom(ctx context.Context, userID, roomID string) (bool, error)
}

Jump to

Keyboard shortcuts

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