func()

in internal/openapi/client.go [397:455]


func (c *Client) sendRequest(url string, request BaseRequest) ([]byte, error) {
	// Fill in initialization parameters
	if c.groupId != "" {
		request.setGroupId(c.groupId)
	}
	if c.namespace != "" {
		request.setNamespace(c.namespace)
	}
	if c.namespaceSource != "" {
		request.setGroupId(c.namespaceSource)
	}
	if c.userId != "" {
		request.setParam("userId", c.userId)
	}
	if c.userName != "" {
		request.setParam("userName", c.userName)
	}
	if c.userId != "" && c.userName != "" {
		request.setParam("user", c.userName+" "+c.userId)
	} else {
		user := "openapi"
		if c.user != "" {
			user = c.user
		}
		request.setParam("user", user)
	}

	// Required parameter verification
	if !c.validateRequiredParam() {
		return nil, errors.New("Missing required param. ")
	}

	// Fill headers
	headers := c.genHeaders()
	logger.Infof("SendRequest url: %s, request params: %+v, headers: %+v", url, request.getParams(), headers)

	postBody, _ := json.Marshal(request.getParams())
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(postBody))
	if err != nil {
		return nil, fmt.Errorf("HTTP NewRequest failed, err=%s ", err.Error())
	}
	req.Header.Set("Content-Type", "application/json")
	for k, v := range headers {
		req.Header.Set(k, v)
	}
	resp, err := c.httpClient.Do(req)
	if err != nil {
		return nil, fmt.Errorf("HTTP post failed, err=%s ", err.Error())
	}
	defer resp.Body.Close()
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("Read http post response failed, err=%s ", err.Error())
	}
	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("Read http post response failed, statusCode=%s ", resp.Status)
	}
	return body, nil
}