package identity
import (
"alin.ovh/homestead/domain/identity/oidc"
"alin.ovh/homestead/domain/identity/webfinger"
"alin.ovh/homestead/shared/config"
"alin.ovh/homestead/shared/http"
"alin.ovh/x/log"
)
type Service struct {
oidc *oidc.Service
webfinger *webfinger.Service
log *log.Logger
}
func New(cfg *config.Config, logger *log.Logger) *Service {
oidcService := oidc.New(cfg, logger.Named("oidc"))
webfingerService := webfinger.New(
logger.Named("webfinger"),
[]webfinger.ResourceProvider{oidcService},
)
return &Service{
oidc: oidcService,
webfinger: webfingerService,
log: logger,
}
}
func (s *Service) RegisterHandlers(mux *http.ServeMux) {
s.oidc.RegisterHandlers(mux)
s.webfinger.RegisterHandlers(mux)
}
func (s *Service) GetOIDCService() *oidc.Service {
return s.oidc
}
func (s *Service) GetWebFingerService() *webfinger.Service {
return s.webfinger
}
domain/identity/service.go (view raw)