func()

in iot-onboarding-service/src/cloudrack-lambda-core/core/utils.go [188:219]


func (s HttpService) HttpGet(params map[string]string, tpl CloudrackObject, options RestOptions) (interface{}, error) {
	endpoint := s.Endpoint
	if options.SubEndpoint != "" {
		endpoint = endpoint + "/" + options.SubEndpoint
	}
	log.Printf("[CORE][HTTP] GET %v\n", s.Endpoint)
	var resp *http.Response
	client := &http.Client{}
	req, err := http.NewRequest(http.MethodGet, endpoint, nil)
	if err != nil {
		log.Fatalln(err)
	}
	//Adding params
	q := req.URL.Query()
	for key, val := range params {
		q.Add(key, val)
	}
	req.URL.RawQuery = q.Encode()
	//Workaround: uncode comma to support comma separated params
	req.URL.RawQuery = strings.ReplaceAll(req.URL.RawQuery, "%2C", ",")
	log.Printf("[CORE][HTTP] GET REQUEST %v\n", req)
	resp, err = client.Do(req)
	log.Printf("[CORE][HTTP] GET RESPONSE %v\n", resp)
	if err == nil {
		resp, err = processResponse(resp)
		//json.NewDecoder(resp.Body).Decode(&res)
		res, _ := ParseBody(resp.Body, tpl)
		log.Printf("[CORE][HTTP] GET RESPONSE DECODED %v\n", res)
		return res, err
	}
	return tpl, err
}