From 99baf40c20bfceb58543ef45a913f0c8c526670e Mon Sep 17 00:00:00 2001 From: Mike Mason Date: Tue, 18 Jul 2023 13:18:24 +0000 Subject: [PATCH] move topics to be defined under events.subscriber --- cmd/serve.go | 6 +++--- internal/config/config.go | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) 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 +}