66 lines
2.2 KiB
Go
66 lines
2.2 KiB
Go
package service
|
|
|
|
import (
|
|
"acc-server-manager/local/model"
|
|
"acc-server-manager/local/repository"
|
|
"acc-server-manager/local/utl/logging"
|
|
"context"
|
|
|
|
"go.uber.org/dig"
|
|
)
|
|
|
|
// InitializeServices
|
|
// Initializes Dependency Injection modules for services
|
|
//
|
|
// Args:
|
|
// *dig.Container: Dig Container
|
|
func InitializeServices(c *dig.Container) {
|
|
logging.Debug("Initializing repositories")
|
|
repository.InitializeRepositories(c)
|
|
|
|
// Provide caches
|
|
logging.Debug("Creating lookup cache instance")
|
|
c.Provide(func() *model.LookupCache {
|
|
return model.NewLookupCache()
|
|
})
|
|
|
|
logging.Debug("Registering services")
|
|
// Provide services
|
|
c.Provide(NewServerService)
|
|
c.Provide(NewStateHistoryService)
|
|
c.Provide(NewApiService)
|
|
c.Provide(NewConfigService)
|
|
c.Provide(NewLookupService)
|
|
c.Provide(NewSystemConfigService)
|
|
c.Provide(NewSteamService)
|
|
c.Provide(NewWindowsService)
|
|
c.Provide(NewFirewallService)
|
|
|
|
logging.Debug("Initializing service dependencies")
|
|
err := c.Invoke(func(server *ServerService, api *ApiService, config *ConfigService, lookup *LookupService, systemConfig *SystemConfigService) {
|
|
logging.Debug("Setting up service cross-references")
|
|
api.SetServerService(server)
|
|
config.SetServerService(server)
|
|
|
|
logging.Debug("Initializing lookup data cache")
|
|
// Initialize lookup data using repository directly
|
|
lookup.cache.Set("tracks", lookup.repository.GetTracks(context.Background()))
|
|
lookup.cache.Set("cars", lookup.repository.GetCarModels(context.Background()))
|
|
lookup.cache.Set("drivers", lookup.repository.GetDriverCategories(context.Background()))
|
|
lookup.cache.Set("cups", lookup.repository.GetCupCategories(context.Background()))
|
|
lookup.cache.Set("sessions", lookup.repository.GetSessionTypes(context.Background()))
|
|
logging.Debug("Completed initializing lookup data cache")
|
|
|
|
logging.Debug("Initializing system config service")
|
|
// Initialize system config service
|
|
if err := systemConfig.Initialize(context.Background()); err != nil {
|
|
logging.Panic("failed to initialize system config service: " + err.Error())
|
|
}
|
|
logging.Debug("Completed initializing system config service")
|
|
})
|
|
if err != nil {
|
|
logging.Panic("unable to initialize services: " + err.Error())
|
|
}
|
|
logging.Debug("Completed service initialization")
|
|
}
|