From c21644229310547908e3bc4be547dd59c8d81439 Mon Sep 17 00:00:00 2001 From: piraces Date: Thu, 14 Apr 2022 12:48:11 +0200 Subject: [PATCH] Add stores command --- 02-refactor-to-cobra/cmd/beers-cli/main.go | 1 + 02-refactor-to-cobra/internal/cli/beers.go | 32 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/02-refactor-to-cobra/cmd/beers-cli/main.go b/02-refactor-to-cobra/cmd/beers-cli/main.go index 4b3ae21..e074938 100644 --- a/02-refactor-to-cobra/cmd/beers-cli/main.go +++ b/02-refactor-to-cobra/cmd/beers-cli/main.go @@ -8,5 +8,6 @@ import ( func main() { rootCmd := &cobra.Command{Use: "beers-cli"} rootCmd.AddCommand(cli.InitBeersCmd()) + rootCmd.AddCommand(cli.InitStoresCmd()) rootCmd.Execute() } diff --git a/02-refactor-to-cobra/internal/cli/beers.go b/02-refactor-to-cobra/internal/cli/beers.go index 26c141f..c07a48a 100644 --- a/02-refactor-to-cobra/internal/cli/beers.go +++ b/02-refactor-to-cobra/internal/cli/beers.go @@ -15,7 +15,14 @@ var beers = map[string]string{ "01D9X5CVS1M9VR5ZD627XDF6ND": "Belgian Moon", } +var stores = map[string]string{ + "01DC9ZAPGKEQJS4P4A48EG3P43": "Mercadona", + "01DC9ZB23EW0J0ARAER09SJDKC": "Carrefour", + "01DC9ZB89V1PQD977ZE6QXSQHH": "Alcampo", +} + const idFlag = "id" +const storeIdFlag = "store" // InitBeersCmd initialize beers command func InitBeersCmd() *cobra.Command { @@ -30,6 +37,19 @@ func InitBeersCmd() *cobra.Command { return beersCmd } +// InitStoresCmd initialize stores command +func InitStoresCmd() *cobra.Command { + storeCmd := &cobra.Command{ + Use: "stores", + Short: "Print data about stores that sell beers", + Run: runStoresFn(), + } + + storeCmd.Flags().StringP(storeIdFlag, "s", "", "id of the store") + + return storeCmd +} + func runBeersFn() CobraFn { return func(cmd *cobra.Command, args []string) { id, _ := cmd.Flags().GetString(idFlag) @@ -41,3 +61,15 @@ func runBeersFn() CobraFn { } } } + +func runStoresFn() CobraFn { + return func(cmd *cobra.Command, args []string) { + id, _ := cmd.Flags().GetString(storeIdFlag) + + if id != "" { + fmt.Println(stores[id]) + } else { + fmt.Println(stores) + } + } +}