func()

in extension/client.go [130:154]


func (e *Client) NextEvent(ctx context.Context) (*NextEventResponse, error) {
	const action = "/event/next"
	url := e.baseURL + action

	httpReq, err := http.NewRequestWithContext(ctx, http.MethodGet, url, http.NoBody)
	if err != nil {
		return nil, fmt.Errorf("failed to create next event request: %w", err)
	}
	httpReq.Header.Set(extensionIdentiferHeader, e.ExtensionID)
	httpReq.Header.Set("User-Agent", version.UserAgent)
	httpRes, err := e.httpClient.Do(httpReq)
	if err != nil {
		return nil, fmt.Errorf("next event request failed: %w", err)
	}
	defer httpRes.Body.Close()

	if httpRes.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("next event request failed with status %s", httpRes.Status)
	}
	res := NextEventResponse{}
	if err := json.NewDecoder(httpRes.Body).Decode(&res); err != nil {
		return nil, fmt.Errorf("failed to decode next event response body: %w", err)
	}
	return &res, nil
}