func EndpointsFromServer()

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
}