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
}