graphicek/server/services/services.go

50 lines
1.2 KiB
Go

package services
import (
"basic-sensor-receiver/config"
"basic-sensor-receiver/integrations"
"database/sql"
)
type Services struct {
SensorConfig *SensorConfigService
SensorValues *SensorValuesService
Sensors *SensorsService
Sessions *SessionsService
Auth *AuthService
Dashboards *DashboardsService
Alerts *AlertsService
ContactPoints *ContactPointsService
}
type Integrations struct {
Telegram *integrations.TelegramIntegration
}
type Context struct {
DB *sql.DB
Config *config.Config
Services *Services
Integrations *Integrations
}
func InitializeServices(ctx *Context) *Services {
services := Services{}
ctx.Services = &services
services.SensorConfig = &SensorConfigService{ctx: ctx}
services.SensorValues = &SensorValuesService{ctx: ctx}
services.Sensors = &SensorsService{ctx: ctx}
services.Sessions = &SessionsService{ctx: ctx}
services.Auth = &AuthService{ctx: ctx}
services.Dashboards = &DashboardsService{ctx: ctx}
services.Alerts = &AlertsService{ctx: ctx}
services.ContactPoints = &ContactPointsService{ctx: ctx}
ctx.Integrations = &Integrations{}
ctx.Integrations.Telegram = &integrations.TelegramIntegration{}
return &services
}