func (c *control) ResetObjects(ctx context.Context) error { response, err := c.resetObjects(ctx, nil) if err != nil { return maskAnyf(invalidAPIResponseError, err.Error()) } apiResponse := response.(api.ResetObjectsResponse) if api.WithError(nil).Code == apiResponse.Code { switch t := apiResponse.Data.(type) { case string: return maskAnyf(invalidAPIResponseError, t) } } if api.WithSuccess().Code == apiResponse.Code { switch apiResponse.Data.(type) { case string: // We received the expected response. return nil } } return maskAnyf(invalidAPIResponseError, "unexpected API response") }
func (c *control) SetVerbosity(ctx context.Context, verbosity int) error { response, err := c.setVerbosity(ctx, api.SetVerbosityRequest{Verbosity: verbosity}) if err != nil { return maskAnyf(invalidAPIResponseError, err.Error()) } apiResponse := response.(api.SetVerbosityResponse) if api.WithError(nil).Code == apiResponse.Code { switch t := apiResponse.Data.(type) { case string: return maskAnyf(invalidAPIResponseError, t) } } if api.WithSuccess().Code == apiResponse.Code { switch apiResponse.Data.(type) { case string: // We received the expected response. return nil } } return maskAnyf(invalidAPIResponseError, "unexpected API response") }
func resetVerbosityEndpoint(lc spec.LogControl) endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { err := lc.ResetVerbosity(ctx) if err != nil { return api.WithError(maskAny(err)), nil } return api.WithSuccess(), nil } }
func setVerbosityEndpoint(lc spec.LogControl) endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { req := request.(api.SetVerbosityRequest) err := lc.SetVerbosity(ctx, req.Verbosity) if err != nil { return api.WithError(maskAny(err)), nil } return api.WithSuccess(), nil } }
// Test_Log_LogControl_ResetLevels_002 checks for LogControl.ResetLevels to handle // errors properly on valid error responses using api.WithError. func Test_Log_LogControl_ResetLevels_002(t *testing.T) { newLogControl, ts := testMaybeNewLogControlAndServer(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { response := api.WithError(errgo.Newf("test error")) if err := json.NewEncoder(w).Encode(response); err != nil { t.Fatalf("json.NewEncoder returned error: %#v", err) } })) defer ts.Close() ctx := context.Background() err := newLogControl.ResetLevels(ctx) if !IsInvalidAPIResponse(err) { t.Fatalf("LogControl.ResetLevels NOT returned proper error") } }