graphicek/server/services/services.go

57 lines
1.5 KiB
Go
Raw Permalink Normal View History

2022-08-13 23:33:50 +02:00
package services
import (
"basic-sensor-receiver/config"
2024-03-29 09:55:51 +01:00
"basic-sensor-receiver/integrations"
"github.com/jmoiron/sqlx"
2022-08-13 23:33:50 +02:00
)
type Services struct {
SensorConfig *SensorConfigService
SensorValues *SensorValuesService
Sensors *SensorsService
Sessions *SessionsService
Auth *AuthService
Dashboards *DashboardsService
Alerts *AlertsService
AlertsEvaluator *AlertsEvaluatorService
ContactPoints *ContactPointsService
2024-04-01 19:42:20 +02:00
MQTTBrokers *MQTTBrokersService
2024-03-29 09:55:51 +01:00
}
type Integrations struct {
Telegram *integrations.TelegramIntegration
2024-04-01 19:42:20 +02:00
MQTT *integrations.MQTTIntegration
2022-08-13 23:33:50 +02:00
}
type Context struct {
DB *sqlx.DB
2024-03-29 09:55:51 +01:00
Config *config.Config
Services *Services
Integrations *Integrations
2022-08-13 23:33:50 +02:00
}
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}
2022-08-21 19:33:30 +02:00
services.Sessions = &SessionsService{ctx: ctx}
services.Auth = &AuthService{ctx: ctx}
2022-08-23 23:35:36 +02:00
services.Dashboards = &DashboardsService{ctx: ctx}
2024-03-29 09:55:51 +01:00
services.Alerts = &AlertsService{ctx: ctx}
services.AlertsEvaluator = &AlertsEvaluatorService{ctx: ctx}
2024-03-29 09:55:51 +01:00
services.ContactPoints = &ContactPointsService{ctx: ctx}
2024-04-01 19:42:20 +02:00
services.MQTTBrokers = &MQTTBrokersService{ctx: ctx}
2024-03-29 09:55:51 +01:00
ctx.Integrations = &Integrations{}
ctx.Integrations.Telegram = &integrations.TelegramIntegration{}
2024-04-01 19:42:20 +02:00
ctx.Integrations.MQTT = &integrations.MQTTIntegration{}
2022-08-13 23:33:50 +02:00
return &services
}