tracker

package
v0.8.20 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

README

tracker

State: Design needs to be finalized.

Components

  • Client
    • How to access users grouped by job?
    • Use Nats and/ or broker channels for accessing the event data.
    • Use key value store to access data by user ID. -> What about the user's job?
  • Worker
    • Load locations from database and generate an event object (like with the broker channel)
    • Store state in key value store for accessing data by user IDs. -> What about the user's job?

What is the state the tracker needs to keeps?

  • User's job
  • User's on-duty state
  • User's unit id -> Centrum UserUnitMapping (settings.proto)

Documentation

Index

Constants

View Source
const (
	BaseSubject events.Subject = "tracker"

	UsersUpdate events.Type = "users_update"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ITracker added in v0.8.13

type ITracker interface {
	GetUsersByJob(job string) (*xsync.MapOf[int32, *livemap.UserMarker], bool)
	GetUserById(id int32) (*livemap.UserMarker, bool)
	GetAllActiveUsers() ([]*livemap.UserMarker, error)
	IsUserOnDuty(userId int32) bool

	Subscribe() chan *livemap.UsersUpdateEvent
	Unsubscribe(c chan *livemap.UsersUpdateEvent)
}

func New

func New(p Params) (ITracker, error)

type Manager added in v0.8.20

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

func NewManager added in v0.8.20

func NewManager(p ManagerParams) (*Manager, error)

type ManagerParams added in v0.8.20

type ManagerParams struct {
	fx.In

	LC fx.Lifecycle

	Logger   *zap.Logger
	JS       nats.JetStreamContext
	TP       *tracesdk.TracerProvider
	DB       *sql.DB
	Enricher *mstlystcdata.Enricher
	Postals  postals.Postals
	Config   *config.Config
	State    *state.State
}

type Params

type Params struct {
	fx.In

	LC fx.Lifecycle

	Logger *zap.Logger
	JS     nats.JetStreamContext
}

type TestTracker added in v0.8.13

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

func NewForTests added in v0.8.13

func NewForTests(ctx context.Context) *TestTracker

func (*TestTracker) GetAllActiveUsers added in v0.8.20

func (s *TestTracker) GetAllActiveUsers() ([]*livemap.UserMarker, error)

func (*TestTracker) GetUserById added in v0.8.13

func (s *TestTracker) GetUserById(id int32) (*livemap.UserMarker, bool)

func (*TestTracker) GetUserByJobAndID added in v0.8.13

func (s *TestTracker) GetUserByJobAndID(job string, userId int32) (*livemap.UserMarker, bool)

func (*TestTracker) GetUsersByJob added in v0.8.13

func (s *TestTracker) GetUsersByJob(job string) (*xsync.MapOf[int32, *livemap.UserMarker], bool)

func (*TestTracker) IsUserOnDuty added in v0.8.13

func (s *TestTracker) IsUserOnDuty(userId int32) bool

func (*TestTracker) Subscribe added in v0.8.13

func (s *TestTracker) Subscribe() chan *livemap.UsersUpdateEvent

func (*TestTracker) Unsubscribe added in v0.8.13

func (s *TestTracker) Unsubscribe(c chan *livemap.UsersUpdateEvent)

type Tracker

type Tracker struct {
	ITracker
	// contains filtered or unexported fields
}

func (*Tracker) GetAllActiveUsers added in v0.8.20

func (s *Tracker) GetAllActiveUsers() ([]*livemap.UserMarker, error)

func (*Tracker) GetUserById

func (s *Tracker) GetUserById(id int32) (*livemap.UserMarker, bool)

func (*Tracker) GetUsersByJob added in v0.8.13

func (s *Tracker) GetUsersByJob(job string) (*xsync.MapOf[int32, *livemap.UserMarker], bool)

func (*Tracker) IsUserOnDuty

func (s *Tracker) IsUserOnDuty(userId int32) bool

func (*Tracker) Subscribe

func (s *Tracker) Subscribe() chan *livemap.UsersUpdateEvent

func (*Tracker) Unsubscribe

func (s *Tracker) Unsubscribe(c chan *livemap.UsersUpdateEvent)

Jump to

Keyboard shortcuts

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