realtimeservice

package
v0.7.8 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2025 License: MIT Imports: 12 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppLike

type AppLike interface {
	DB() db.Client
	Logger() logger.Logger
}

type RealtimeCreateData

type RealtimeCreateData struct {
	Schema *schema.Schema
	ID     uint64
	Data   *entity.Entity
}

type RealtimeDeleteData

type RealtimeDeleteData struct {
	Schema           *schema.Schema
	Predicates       *[]*db.Predicate
	OriginalEntities []*entity.Entity
	Affected         int
}

type RealtimeService

type RealtimeService struct {
	DB     func() db.Client
	Logger func() logger.Logger
	// contains filtered or unexported fields
}

func New

func New(app AppLike) *RealtimeService

func (*RealtimeService) AddClient

func (rs *RealtimeService) AddClient(client fs.WSClient, topic string, serializer WSSerializer)

func (*RealtimeService) Broadcast

func (rs *RealtimeService) Broadcast(topicNames []string, data any)

func (*RealtimeService) Content

func (rs *RealtimeService) Content(c fs.Context, _ any) (any, error)

func (*RealtimeService) ContentCreateHook

func (rs *RealtimeService) ContentCreateHook(
	ctx context.Context,
	schema *schema.Schema,
	dataCreate *entity.Entity,
	id uint64,
) error

func (*RealtimeService) ContentDeleteHook

func (rs *RealtimeService) ContentDeleteHook(
	ctx context.Context,
	schema *schema.Schema,
	predicates *[]*db.Predicate,
	originalEntities []*entity.Entity,
	affected int,
) error

func (*RealtimeService) ContentUpdateHook

func (rs *RealtimeService) ContentUpdateHook(
	ctx context.Context,
	schema *schema.Schema,
	predicates *[]*db.Predicate,
	updateData *entity.Entity,
	originalEntities []*entity.Entity,
	affected int,
) error

func (*RealtimeService) CreateResource added in v0.6.0

func (rs *RealtimeService) CreateResource(api *fs.Resource)

func (*RealtimeService) RemoveClient

func (rs *RealtimeService) RemoveClient(client fs.WSClient, callCloses ...bool) error

func (*RealtimeService) Topics

type RealtimeUpdateData

type RealtimeUpdateData struct {
	Schema           *schema.Schema
	Predicates       *[]*db.Predicate
	UpdateData       *entity.Entity
	OriginalEntities []*entity.Entity
	Affected         int
}

type WSClientSerializers

type WSClientSerializers = fs.SyncMap[fs.WSClient, WSSerializer]

type WSContentEvent

type WSContentEvent int
const (
	WSContentEventInvalid WSContentEvent = iota
	WSContentEventAll
	WSContentEventCreate
	WSContentEventUpdate
	WSContentEventDelete
)

func WSContentEventFromString

func WSContentEventFromString(s string) WSContentEvent

func (WSContentEvent) MarshalJSON

func (t WSContentEvent) MarshalJSON() ([]byte, error)

MarshalJSON marshals the enum as a quoted json string.

func (WSContentEvent) String

func (t WSContentEvent) String() string

String returns the string value of the type.

func (WSContentEvent) Valid

func (t WSContentEvent) Valid() bool

Valid reports if the given type if known type.

type WSContentSerializeData

type WSContentSerializeData struct {
	Event WSContentEvent `json:"event"`
	Data  any            `json:"data"`
}

type WSContentSerializer

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

func (*WSContentSerializer) Serialize

func (tc *WSContentSerializer) Serialize(data any) (msg []byte, err error)

type WSSerializer

type WSSerializer interface {
	Serialize(data any) ([]byte, error)
}

Jump to

Keyboard shortcuts

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