// GetAlertAction retrieves specified alert details from OpsGenie. func GetAlertAction(c *gcli.Context) { cli, err := NewAlertClient(c) if err != nil { os.Exit(1) } req := alerts.GetAlertRequest{} if val, success := getVal("id", c); success { req.ID = val } if val, success := getVal("alias", c); success { req.Alias = val } printVerboseMessage("Get alert request prepared from flags, sending request to OpsGenie..") resp, err := cli.Get(req) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } outputFormat := strings.ToLower(c.String("output-format")) printVerboseMessage("Got Alert successfully, and will print as " + outputFormat) switch outputFormat { case "yaml": output, err := resultToYAML(resp) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } fmt.Printf("%s\n", output) default: isPretty := c.IsSet("pretty") output, err := resultToJSON(resp, isPretty) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } fmt.Printf("%s\n", output) } }