code: func (client *Client) SyncRequestWithContext(ctx context.Context, command Command) (interface{}, error) {
  	body, err := client.request(ctx, command)
  	if err != nil {
  		return nil, err
  	}
  
  	response := command.Response()
  	b, ok := response.(*BooleanResponse)
  	if ok {
  		m := make(map[string]interface{})
  		if errUnmarshal := json.Unmarshal(body, &m); errUnmarshal != nil {
  			return nil, errUnmarshal
  		}
  
  		b.DisplayText, _ = m["displaytext"].(string)
  
  		if success, okSuccess := m["success"].(string); okSuccess {
  			b.Success = success == "true"
  		}
  
  		if success, okSuccess := m["success"].(bool); okSuccess {
  			b.Success = success
  		}
  
  		return b, nil
  	}
  
  	if err := json.Unmarshal(body, response); err != nil {
  		errResponse := new(ErrorResponse)
  		if e := json.Unmarshal(body, errResponse); e == nil && errResponse.ErrorCode > 0 {
  			return errResponse, nil
  		}
  		return nil, err
  	}
  
  	return response, nil
  }
docs: // SyncRequestWithContext performs a sync request with a context