in extension/client.go [189:214]
func (e *Client) ExitError(ctx context.Context, errorType string) (*StatusResponse, error) {
const action = "/exit/error"
url := e.baseURL + action
httpReq, err := http.NewRequestWithContext(ctx, http.MethodPost, url, http.NoBody)
if err != nil {
return nil, fmt.Errorf("failed to create exit error request: %w", err)
}
httpReq.Header.Set(extensionIdentiferHeader, e.ExtensionID)
httpReq.Header.Set(extensionErrorType, errorType)
httpReq.Header.Set("User-Agent", version.UserAgent)
httpRes, err := e.httpClient.Do(httpReq)
if err != nil {
return nil, fmt.Errorf("exit error request failed: %w", err)
}
defer httpRes.Body.Close()
if httpRes.StatusCode > 299 {
return nil, fmt.Errorf("exit error request failed with status %s", httpRes.Status)
}
res := StatusResponse{}
if err := json.NewDecoder(httpRes.Body).Decode(&res); err != nil {
return nil, fmt.Errorf("failed to decode exit error response body: %w", err)
}
return &res, nil
}