diff --git a/cmd/serve.go b/cmd/serve.go index 5afef9f..717e50e 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -33,7 +33,7 @@ func init() { events.MustViperFlagsForSubscriber(viper.GetViper(), serveCmd.Flags()) serveCmd.PersistentFlags().StringSlice("events-topics", []string{}, "event topics to subscribe to") - viperx.MustBindFlag(viper.GetViper(), "events.topics", serveCmd.PersistentFlags().Lookup("events-topics")) + viperx.MustBindFlag(viper.GetViper(), "events.subscriber.topics", serveCmd.PersistentFlags().Lookup("events-topics")) oauth2x.MustViperFlags(viper.GetViper(), serveCmd.Flags()) permissions.MustViperFlags(viper.GetViper(), serveCmd.Flags()) @@ -87,14 +87,14 @@ func serve(cmd *cobra.Command, _ []string) { logger.Fatalw("error initializing service", "error", err) } - subscriber, err := pubsub.NewSubscriber(cmd.Context(), config.AppConfig.Events.Subscriber, service, + subscriber, err := pubsub.NewSubscriber(cmd.Context(), config.AppConfig.Events.Subscriber.SubscriberConfig, service, pubsub.WithLogger(logger), ) if err != nil { logger.Fatalw("unable to initialize event subscriber", "error", err) } - for _, topic := range viper.GetStringSlice("events.topics") { + for _, topic := range config.AppConfig.Events.Subscriber.Topics { if err := subscriber.Subscribe(topic); err != nil { logger.Fatalw("error subscribing to topic: "+topic, "topic", topic, "error", err) } diff --git a/internal/config/config.go b/internal/config/config.go index 7967d2b..cb7ee37 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -29,10 +29,16 @@ var AppConfig struct { // EventsConfig defines the configuration setting up both subscriptions and publishing type EventsConfig struct { Publisher events.PublisherConfig - Subscriber events.SubscriberConfig + Subscriber SubscriberConfig } // OIDCClientConfig defines the configuration for OIDC Client Credentials. type OIDCClientConfig struct { Client oauth2x.Config } + +// SubscriberConfig extends events SubscriberConfig by adding topics. +type SubscriberConfig struct { + events.SubscriberConfig `mapstructure:",squash"` + Topics []string +}