services

package
v0.0.0-...-9dd99c2 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

services is where most business logic exists

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Job

type Job interface {
	CheckActiveMembersWithoutSubscription()
	CheckMemberSubscriptions()
	CheckResourceInit()
	CheckResourceInterval()
	CheckIPAddressInterval()
	RemovedInvalidUIDs()
	EnableValidUIDs()
	UpdateResources()
	UpdateMemberCounts()
}

type Logger

type Logger interface {
	SetLevel(level logrus.Level)
	Println(args ...interface{})
	Printf(format string, args ...interface{})
	Errorf(format string, args ...interface{})
	Debugf(format string, args ...interface{})
	Infof(format string, args ...interface{})
	Fatalf(format string, args ...interface{})
	Tracef(format string, args ...interface{})
	Print(args ...interface{})
	Error(args ...interface{})
	Debug(args ...interface{})
	Info(args ...interface{})
	Fatal(args ...interface{})
	Trace(args ...interface{})
}

type MQTTHandler

type MQTTHandler interface {
	// mqtt handlers
	HealthCheckHandler(client go_mqtt.Client, msg go_mqtt.Message)
	ReceiveHandler(client go_mqtt.Client, msg go_mqtt.Message)
	OnAccessEventHandler(payload models.LogMessage)
	OnHeartBeatHandler(client go_mqtt.Client, msg go_mqtt.Message)
	OnRemoveInvalidRequestHandler(client go_mqtt.Client, msg go_mqtt.Message)
}

type Mailer

type Mailer interface {
	SendCommunication(communication mail.CommunicationTemplate, recipient string, model interface{}) (bool, error)
	IsThrottled(c models.Communication, member models.Member) bool
}

type Member

type Member interface {
	Add(models.Member) (models.Member, error)
	Get() []models.Member
	GetMembersPaginated(limit int, offset int, active bool) []models.Member
	GetMemberCount(isActive bool) (int, error)
	GetByEmail(email string) (models.Member, error)
	Update(models.Member) error
	UpdateMemberByID(memberID string, update models.Member) error
	AssignRFID(email string, rfid string) (models.Member, error)
	GetTiers() []models.Tier
	FindNonMembersOnSlack() []string
	GetMemberFromSubscription(subscriptionID string) (models.Member, error)
	CheckStatus(subscriptionID string) (models.Member, error)
	SetLevel(memberID string, level models.MemberLevel) error
	GetActiveMembersWithoutSubscription() []models.Member
}

type Report

type Report interface {
	GetAccessStatsChart(date time.Time, resourceName string) (models.ReportChart, error)
	GetMemberChurn() (int, error)
	GetMemberCountsChartByMonth(date time.Time) models.ReportChart
	GetMemberCountsCharts(chartType string) ([]models.ReportChart, error)
}

type Resource

type Resource interface {
	MQTTHandler
	UpdateResourceACL(r models.Resource) error
	UpdateResources()
	EnableValidUIDs()
	RemovedInvalidUIDs()
	RemoveMember(memberAccess models.MemberAccess)
	Open(resource models.Resource)
	RemoveOne(member models.Member)
	PushOne(m models.Member)
	DeleteResourceACL()
	CheckStatus(r models.Resource)
	MQTT() mqtt.MQTTServer
}

type ResourceUpdater

type ResourceUpdater interface {
	PushOne(m models.Member)
}

type Scheduler

type Scheduler interface {
	Setup(j Job)
	// contains filtered or unexported methods
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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