diff --git a/cmd/publish.go b/cmd/publish.go index 1b22599f..f687c37e 100644 --- a/cmd/publish.go +++ b/cmd/publish.go @@ -16,12 +16,13 @@ import ( var publishTopic string var publishPayload string +var pubsubName string var PublishCmd = &cobra.Command{ Use: "publish", Short: "Publish an event to multiple consumers", Run: func(cmd *cobra.Command, args []string) { - err := publish.SendPayloadToTopic(publishTopic, publishPayload) + err := publish.SendPayloadToTopic(publishTopic, publishPayload, pubsubName) if err != nil { print.FailureStatusEvent(os.Stdout, fmt.Sprintf("Error publishing topic %s: %s", publishTopic, err)) return @@ -34,7 +35,9 @@ var PublishCmd = &cobra.Command{ func init() { PublishCmd.Flags().StringVarP(&publishTopic, "topic", "t", "", "the topic the app is listening on") PublishCmd.Flags().StringVarP(&publishPayload, "data", "d", "", "(optional) a json serialized string") + PublishCmd.Flags().StringVarP(&pubsubName, "pubsub", "", "", "name of the pub/sub component") PublishCmd.MarkFlagRequired("app-id") PublishCmd.MarkFlagRequired("topic") + PublishCmd.MarkFlagRequired("pubsub") RootCmd.AddCommand(PublishCmd) } diff --git a/pkg/publish/publish.go b/pkg/publish/publish.go index 6682fec8..4a16555b 100644 --- a/pkg/publish/publish.go +++ b/pkg/publish/publish.go @@ -16,10 +16,13 @@ import ( ) // SendPayloadToTopic publishes the topic -func SendPayloadToTopic(topic, payload string) error { +func SendPayloadToTopic(topic, payload, pubsubName string) error { if topic == "" { return errors.New("topic is missing") } + if pubsubName == "" { + return errors.New("pubsubName is missing") + } l, err := standalone.List() if err != nil { @@ -37,7 +40,7 @@ func SendPayloadToTopic(topic, payload string) error { b = []byte(payload) } - url := fmt.Sprintf("http://localhost:%s/v%s/publish/%s", fmt.Sprintf("%v", app.HTTPPort), api.RuntimeAPIVersion, topic) + url := fmt.Sprintf("http://localhost:%s/v%s/publish/%s/%s", fmt.Sprintf("%v", app.HTTPPort), api.RuntimeAPIVersion, pubsubName, topic) // nolint: gosec r, err := http.Post(url, "application/json", bytes.NewBuffer(b))