From bb72ab1232a6785cdd878ff9d75690febd198d9a Mon Sep 17 00:00:00 2001 From: Vijay Vuyyuru Date: Tue, 18 Feb 2025 11:18:34 -0500 Subject: [PATCH] DATA-3755 Update Go SDK to have useRecentData option (#4786) --- app/data_client.go | 13 ++++++++++++- app/data_client_test.go | 8 +++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/data_client.go b/app/data_client.go index 12a470d7f12..9b68c1eb55d 100644 --- a/app/data_client.go +++ b/app/data_client.go @@ -276,6 +276,11 @@ type DataByFilterOptions struct { IncludeInternalData bool } +// TabularDataByMQLOptions contains optional parameters for TabularDataByMQL. +type TabularDataByMQLOptions struct { + UseRecentData bool +} + // BinaryDataCaptureUploadOptions represents optional parameters for the BinaryDataCaptureUpload method. type BinaryDataCaptureUploadOptions struct { Type *DataType @@ -438,7 +443,7 @@ func (d *DataClient) TabularDataBySQL(ctx context.Context, organizationID, sqlQu // TabularDataByMQL queries tabular data with MQL (MongoDB Query Language) queries. func (d *DataClient) TabularDataByMQL( - ctx context.Context, organizationID string, query []map[string]interface{}, + ctx context.Context, organizationID string, query []map[string]interface{}, opts *TabularDataByMQLOptions, ) ([]map[string]interface{}, error) { mqlBinary := [][]byte{} for _, q := range query { @@ -449,9 +454,15 @@ func (d *DataClient) TabularDataByMQL( mqlBinary = append(mqlBinary, binary) } + useRecentData := false + if opts != nil { + useRecentData = opts.UseRecentData + } + resp, err := d.dataClient.TabularDataByMQL(ctx, &pb.TabularDataByMQLRequest{ OrganizationId: organizationID, MqlBinary: mqlBinary, + UseRecentData: &useRecentData, }) if err != nil { return nil, err diff --git a/app/data_client_test.go b/app/data_client_test.go index b5fa0e4b42f..5ce7b58cb43 100644 --- a/app/data_client_test.go +++ b/app/data_client_test.go @@ -361,7 +361,13 @@ func TestDataClient(t *testing.T) { RawData: expectedRawDataPb, }, nil } - response, err := client.TabularDataByMQL(context.Background(), organizationID, mqlQueries) + response, err := client.TabularDataByMQL(context.Background(), organizationID, mqlQueries, nil) + test.That(t, err, test.ShouldBeNil) + test.That(t, response, test.ShouldResemble, rawData) + response, err = client.TabularDataByMQL(context.Background(), organizationID, mqlQueries, &TabularDataByMQLOptions{UseRecentData: false}) + test.That(t, err, test.ShouldBeNil) + test.That(t, response, test.ShouldResemble, rawData) + response, err = client.TabularDataByMQL(context.Background(), organizationID, mqlQueries, &TabularDataByMQLOptions{UseRecentData: true}) test.That(t, err, test.ShouldBeNil) test.That(t, response, test.ShouldResemble, rawData) })