func()

in lambda/extensions_api_client.go [41:63]


func (c *extensionAPIClient) register(name string, events ...extensionAPIEventType) (string, error) {
	url := c.baseURL + "register"
	body, _ := json.Marshal(struct {
		Events []extensionAPIEventType `json:"events"`
	}{
		Events: events,
	})

	req, _ := http.NewRequest(http.MethodPost, url, bytes.NewReader(body))
	req.Header.Add(headerExtensionName, name)
	res, err := c.httpClient.Do(req)
	if err != nil {
		return "", fmt.Errorf("failed to register extension: %v", err)
	}
	defer res.Body.Close()
	_, _ = io.Copy(ioutil.Discard, res.Body)

	if res.StatusCode != http.StatusOK {
		return "", fmt.Errorf("failed to register extension, got response status: %d %s", res.StatusCode, http.StatusText(res.StatusCode))
	}

	return res.Header.Get(headerExtensionIdentifier), nil
}