in internal/config/endpoints.go [38:66]
func EndpointsFromServer(ctx context.Context, endpointsURL string) (map[string]Endpoint, error) {
req, err := http.NewRequestWithContext(
ctx,
http.MethodGet,
endpointsURL,
nil,
)
if err != nil {
return nil, err
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("%v %s", resp.Status, endpointsURL)
}
e := make(map[string]Endpoint)
decoder := json.NewDecoder(resp.Body)
if err := decoder.Decode(&e); err != nil {
return nil, err
}
return e, err
}