vibeStonk/server/services/common.go
2025-06-12 16:57:42 -04:00

50 lines
935 B
Go

package services
import (
"fmt"
"vibeStonk/server/repository"
)
type SystemServices struct {
AuthService AuthService
StockService StockService
}
func (s *SystemServices) Close() []error {
services := []interface{ Close() error }{
s.AuthService,
s.StockService,
}
errs := make([]error, 0, len(services))
for _, service := range services {
err := service.Close()
if err != nil {
errs = append(errs, err)
}
}
if len(errs) > 0 {
return errs
}
return nil
}
func NewSystemServices(config *repository.Config) (*SystemServices, error) {
authService, err := NewAuthService(config)
if err != nil {
return nil, fmt.Errorf("failed to create system services: %w", err)
}
stockService, err := NewStockService(config)
if err != nil {
return nil, fmt.Errorf("failed to create system stock service: %w", err)
}
return &SystemServices{
AuthService: authService,
StockService: stockService,
}, nil
}