2022-08-13 23:33:50 +02:00
|
|
|
package app
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"basic-sensor-receiver/config"
|
2022-08-23 21:26:42 +02:00
|
|
|
"basic-sensor-receiver/database"
|
2022-08-13 23:33:50 +02:00
|
|
|
"basic-sensor-receiver/services"
|
2024-03-31 20:04:48 +02:00
|
|
|
|
|
|
|
|
"github.com/jmoiron/sqlx"
|
2022-08-13 23:33:50 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Server struct {
|
2025-03-04 12:09:15 +01:00
|
|
|
DB *sqlx.DB
|
|
|
|
|
Config *config.Config
|
|
|
|
|
Services *services.Services
|
|
|
|
|
Integrations *services.Integrations
|
2022-08-13 23:33:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func InitializeServer() *Server {
|
|
|
|
|
server := Server{}
|
|
|
|
|
server.Config = config.LoadConfig()
|
2022-08-23 21:26:42 +02:00
|
|
|
|
|
|
|
|
db, err := database.Initialize(server.Config.DatabaseUrl)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server.DB = db
|
2022-08-13 23:33:50 +02:00
|
|
|
|
|
|
|
|
ctx := services.Context{DB: server.DB, Config: server.Config}
|
|
|
|
|
|
|
|
|
|
server.Services = services.InitializeServices(&ctx)
|
2025-03-04 12:09:15 +01:00
|
|
|
server.Integrations = ctx.Integrations
|
2022-08-13 23:33:50 +02:00
|
|
|
|
|
|
|
|
return &server
|
|
|
|
|
}
|