func TestBloomItems()

in datasource/featuredb/fdbserverpb/fdbserver.go [73:126]


func TestBloomItems(project *domain.Project, featureView domain.FeatureView, request *TestBloomItemsRequest) ([]bool, error) {
	fdbClient, err := featuredb.GetFeatureDBClient()
	if err != nil {
		return nil, err
	}

	requestData, err := proto.Marshal(request)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", fmt.Sprintf("%s/api/v1/tables/%s/%s/%s/test_bloom_items",
		fdbClient.GetCurrentAddress(false), project.InstanceId, project.ProjectName, featureView.GetName()), bytes.NewReader(requestData))
	if err != nil {
		return nil, err
	}
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", fdbClient.Token)
	req.Header.Set("Auth", project.Signature)

	response, err := fdbClient.Client.Do(req)
	if err != nil {
		req, err = http.NewRequest("POST", fmt.Sprintf("%s/api/v1/tables/%s/%s/%s/test_bloom_items",
			fdbClient.GetCurrentAddress(true), project.InstanceId, project.ProjectName, featureView.GetName()), bytes.NewReader(requestData))
		if err != nil {
			return nil, err
		}
		req.Header.Set("Content-Type", "application/json")
		req.Header.Set("Authorization", fdbClient.Token)
		req.Header.Set("Auth", project.Signature)
		response, err = fdbClient.Client.Do(req)
		if err != nil {
			return nil, err
		}
	}

	defer response.Body.Close()

	responseData, err := io.ReadAll(response.Body)
	if err != nil {
		return nil, err
	}

	if response.StatusCode != 200 {
		return nil, fmt.Errorf("status code: %d, response body: %s", response.StatusCode, string(responseData))
	}
	responseBody := &TestBloomItemsResponse{}
	if err := proto.Unmarshal(responseData, responseBody); err != nil {
		return nil, err
	}

	return responseBody.Tests, nil

}