package startram import ( "fmt" "encoding/json" "os" "log/slog" "io/ioutil" "net/http" "goseg/config" "goseg/structs" ) var ( logger = slog.New(slog.NewJSONHandler(os.Stdout, nil)) ) func GetRegions() (map[string]structs.StartramRegion, error) { var regions map[string]structs.StartramRegion config := config.Conf() regionUrl := "https://" + config.EndpointUrl + "/v1/regions" resp, err := http.Get(regionUrl) if err != nil { errmsg := fmt.Sprintf("Unable to connect to API server: %v", err) logger.Warn(errmsg) return regions, err } body, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { errmsg := fmt.Sprintf("Error reading regions info: %v", err) logger.Warn(errmsg) return regions, err } // unmarshal values into struct err = json.Unmarshal(body, ®ions) if err != nil { errmsg := fmt.Sprintf("Error unmarshalling regions json: %v", err) fmt.Println(string(body)) logger.Warn(errmsg) return regions, err } return regions, nil }