Skip to content

Commit d3719aa

Browse files
authored
Add includeBinary to data funcs (#330)
1 parent 5d442c7 commit d3719aa

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

lib/src/app/data.dart

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,21 +123,24 @@ class DataClient {
123123
///
124124
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
125125
Future<BinaryDataByFilterResponse> binaryDataByFilter(
126-
{Filter? filter, int? limit, Order? sortOrder, String? last, countOnly = false}) async {
126+
{Filter? filter, int? limit, Order? sortOrder, String? last, bool countOnly = false, bool includeBinary = false}) async {
127127
final dataRequest = _makeDataRequest(filter, limit, last, sortOrder);
128128
final request = BinaryDataByFilterRequest()
129129
..dataRequest = dataRequest
130-
..countOnly = false;
130+
..countOnly = countOnly
131+
..includeBinary = includeBinary;
131132
return await _dataClient.binaryDataByFilter(request);
132133
}
133134

134135
/// Retrieve binary data by IDs
135136
///
136137
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
137-
Future<List<BinaryData>> binaryDataByIds(List<BinaryID> binaryIds) async {
138-
final request = BinaryDataByIDsRequest()..binaryIds.addAll(binaryIds);
138+
Future<BinaryDataByIDsResponse> binaryDataByIds(List<BinaryID> binaryIds, {bool includeBinary = false}) async {
139+
final request = BinaryDataByIDsRequest()
140+
..binaryIds.addAll(binaryIds)
141+
..includeBinary = includeBinary;
139142
final response = await _dataClient.binaryDataByIDs(request);
140-
return response.data;
143+
return response;
141144
}
142145

143146
/// Obtain unified tabular data and metadata, queried with SQL.

test/unit_test/app/data_client_test.dart

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import 'dart:typed_data';
2-
31
import 'package:bson/bson.dart' hide Timestamp;
42
import 'package:fixnum/fixnum.dart';
53
import 'package:flutter_test/flutter_test.dart';
@@ -101,14 +99,20 @@ void main() {
10199
const limit = 10;
102100
const last = 'last';
103101
const sortOrder = Order.ORDER_ASCENDING;
102+
bool includeBinary = false;
104103

105-
when(serviceClient.binaryDataByFilter(any)).thenAnswer((_) => MockResponseFuture.value(BinaryDataByFilterResponse()
106-
..count = Int64(limit)
107-
..last = last));
104+
when(serviceClient.binaryDataByFilter(any)).thenAnswer((invocation) {
105+
includeBinary = (invocation.positionalArguments[0] as BinaryDataByFilterRequest).includeBinary;
106+
return MockResponseFuture.value(BinaryDataByFilterResponse()
107+
..count = Int64(limit)
108+
..last = last);
109+
});
108110

109-
final response = await dataClient.binaryDataByFilter(filter: filter, limit: limit, sortOrder: sortOrder, last: last);
111+
final response =
112+
await dataClient.binaryDataByFilter(filter: filter, limit: limit, sortOrder: sortOrder, last: last, includeBinary: true);
110113
expect(response.count, equals(Int64(limit)));
111114
expect(response.last, equals(last));
115+
expect(includeBinary, isTrue);
112116
});
113117

114118
test('binaryDataByFilter_countOnly', () async {
@@ -135,11 +139,16 @@ void main() {
135139
BinaryData()..binary = [2, 3, 4, 5],
136140
BinaryData()..binary = [3, 4, 5, 6],
137141
];
142+
bool includeBinary = false;
138143

139-
when(serviceClient.binaryDataByIDs(any)).thenAnswer((_) => MockResponseFuture.value(BinaryDataByIDsResponse()..data.addAll(data)));
144+
when(serviceClient.binaryDataByIDs(any)).thenAnswer((invocation) {
145+
includeBinary = (invocation.positionalArguments[0] as BinaryDataByIDsRequest).includeBinary;
146+
return MockResponseFuture.value(BinaryDataByIDsResponse()..data.addAll(data));
147+
});
140148

141-
final response = await dataClient.binaryDataByIds(ids);
142-
expect(response, equals(data));
149+
final response = await dataClient.binaryDataByIds(ids, includeBinary: true);
150+
expect(response.data, equals(data));
151+
expect(includeBinary, isTrue);
143152
});
144153

145154
test('tabularDataBySql', () async {

0 commit comments

Comments
 (0)