func()

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
}