in iot-onboarding-service/src/cloudrack-lambda-core/core/utils.go [157:186]
func (s HttpService) HttpPost(object interface{}, tpl CloudrackObject, options RestOptions) (interface{}, error) {
endpoint := s.Endpoint
if options.SubEndpoint != "" {
endpoint = endpoint + "/" + options.SubEndpoint
}
log.Printf("[CORE][HTTP] POST %v\n", endpoint)
log.Printf("[CORE][HTTP] Body: %+v\n", object)
var resp *http.Response
bytesRepresentation, err := json.Marshal(object)
if err != nil {
log.Fatalln(err)
}
client := &http.Client{}
req, err := http.NewRequest(http.MethodPost, endpoint, bytes.NewBuffer(bytesRepresentation))
req.Header.Add("Content-Type", "application/json")
for headerName, headerValue := range options.Headers {
req.Header.Add(headerName, headerValue)
}
resp, err = client.Do(req)
log.Printf("[CORE][HTTP] POST RESPONSE %v\n", resp)
if err == nil && resp != nil {
resp, err = processResponse(resp)
res, _ := ParseBody(resp.Body, tpl)
log.Printf("[CORE][HTTP] POST RESPONSE DECODED %v\n", res)
return res, err
}
return tpl, err
}