domain

package
v0.0.0-...-77f6f4f Latest Latest
Warning

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

Go to latest
Published: May 30, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Empty       OriginType = "Empty"
	FromSession            = "FromSession"
	FromLobby              = "FromLobby"
	FromUsers              = "FromUsers"
)

Variables

This section is empty.

Functions

func NotifyTarget

func NotifyTarget(ch chan<- OriginEnvelope, message Message, origin Origin)

func ReplyToOrigin

func ReplyToOrigin(ch chan<- OriginEnvelope, envelope OriginEnvelope, replyMessage Message, origin Origin)

Types

type Envelope

type Envelope struct {
	Data     interface{} `json:"data"`
	UUID     string      `json:"uuid"`
	AckUUIDs []string    `json:"ack_uuids"`
}

func Notify

func Notify(message Message) Envelope

func Reply

func Reply(envelope Envelope, message Message) Envelope

func (Envelope) WithOrigin

func (e Envelope) WithOrigin(origin Origin) OriginEnvelope

type EnveloperBuilder

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

func (EnveloperBuilder) Ack

func (b EnveloperBuilder) Ack(ackUUIDs []string) Envelope

func (EnveloperBuilder) AckUUIDs

func (b EnveloperBuilder) AckUUIDs(ackUUIDs []string) EnveloperBuilder

func (EnveloperBuilder) Build

func (b EnveloperBuilder) Build() Envelope

func (EnveloperBuilder) Data

func (b EnveloperBuilder) Data(data interface{}) EnveloperBuilder

func (EnveloperBuilder) GenerateUUID

func (b EnveloperBuilder) GenerateUUID() EnveloperBuilder

func (EnveloperBuilder) UUID

type ErrorBody

type ErrorBody struct {
	Code ErrorCode   `json:"code" mapstructure:"code"`
	Info interface{} `json:"info" mapstructure:"info"`
}

type ErrorCode

type ErrorCode string
const (
	Unauthorized ErrorCode = "Unauthorized"
)

type InvitedUser

type InvitedUser struct {
	Name      string `json:"name" mapstructure:"name"`
	Connected bool   `json:"connected" mapstructure:"connected"`
	Leader    bool   `json:"leader" mapstructure:"leader"`
}

type Message

type Message struct {
	MessageType MessageType `json:"type" mapstructure:"type"`
	Body        interface{} `json:"body" mapstructure:"body"`
}

func DecodeMessage

func DecodeMessage(message Message) Message

type MessageBuilder

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

func (MessageBuilder) Body

func (b MessageBuilder) Body(body interface{}) MessageBuilder

func (MessageBuilder) Build

func (b MessageBuilder) Build() Message

func (MessageBuilder) Error

func (b MessageBuilder) Error(code ErrorCode, info interface{}) Message

func (MessageBuilder) MessageType

func (b MessageBuilder) MessageType(messageType MessageType) MessageBuilder

type MessageType

type MessageType string
const (
	// Request
	InvitedUsers      MessageType = "InvitedUsers"
	InviteUser        MessageType = "InviteUser"
	UninviteUser      MessageType = "UninviteUser"
	DeclineInvitation MessageType = "DeclineInvitation"
	// Reply
	InvitedUsersReply      MessageType = "InvitedUsersReply"
	InviteUserReply        MessageType = "InviteUserReply"
	UninviteUserReply      MessageType = "UninviteUserReply"
	DeclineInvitationReply MessageType = "DeclineInvitationReply"
	// Notifications
	GotInvite          MessageType = "GotInvite"
	GotUninvite        MessageType = "GotUninvite"
	Connected          MessageType = "Connected"
	Disconnected       MessageType = "Disconnected"
	DeclinedInvitation MessageType = "DeclinedInvitation"
	StartGame          MessageType = "StartGame"
)
const (
	// Request
	OnlineUsers MessageType = "OnlineUsers"
	// Reply
	OnlineUsersReply MessageType = "OnlineUsersReply"
	// Notifications
	GotOnline  MessageType = "UserGotOnline"
	GotOffline MessageType = "UserGotOffline"
)
const ErrorMessageType MessageType = "Error"
const Welcome MessageType = "Welcome"

type Origin

type Origin struct {
	ID         string
	OriginType OriginType
}

func EmptyOrigin

func EmptyOrigin() Origin

func NewOrigin

func NewOrigin(id string, originType OriginType) Origin

type OriginEnvelope

type OriginEnvelope struct {
	Envelope
	Origin
}

type OriginType

type OriginType string

type User

type User struct {
	Name   string `json:"name" mapstructure:"name"`
	GameID string `json:"gameID" mapstructure:"gameID"`
}

Jump to

Keyboard shortcuts

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