Skip to content

Commit acf82fd

Browse files
committed
add ut, fix result handlers' bug
1 parent ba45f3c commit acf82fd

File tree

5 files changed

+437
-55
lines changed

5 files changed

+437
-55
lines changed

AUTHORS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
1-
Promoter:
2-
- [CorvusYe](https://github.com/CorvusYe)
3-
41
Authors:
52
- [CorvusYe](https://github.com/CorvusYe)

lib/nebula_dart_gdbc.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'dart:typed_data';
66
import 'package:nebula_dart_gdbc/nebula_dart_gdbc.dart';
77
import 'package:nebula_dart_gdbc/gen/nebula_graph/nebula_graph.dart' as ng;
88

9-
// export all dart_gdbc and alias it to gdbc
109
export 'package:dart_gdbc/dart_gdbc.dart';
1110

1211
part 'src/ng_driver.dart';

lib/src/ng_result_handler.dart

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ dynamic _handleValue(ng.Value v, ValueMetaData meta, int? timezoneOffset) {
9696
return v.iVal;
9797
}
9898
if (v.fVal != null) {
99-
meta.type = GdbTypes.float;
99+
meta.type = GdbTypes.double;
100100
return v.fVal;
101101
}
102102
if (v.sVal != null) {
@@ -207,14 +207,6 @@ _handleList(ng.NList v, ValueMetaData meta, int? timezoneOffset) {
207207
return values;
208208
}
209209

210-
const _needTypeDetail = [
211-
GdbTypes.dataSet,
212-
GdbTypes.node,
213-
GdbTypes.relationship,
214-
GdbTypes.path,
215-
GdbTypes.step,
216-
];
217-
218210
_handleCollection(
219211
ValueMetaData meta,
220212
dynamic values,
@@ -230,18 +222,10 @@ _handleCollection(
230222
..name = ''
231223
..type = GdbTypes.unknown;
232224
var value = _handle(v, valueMeta, timezoneOffset);
233-
// TODO 补全path属性
234-
if (_needTypeDetail.contains(valueMeta.type) && list != null) {
235-
for (var element in valueMeta.submetas) {
236-
var c = valueMeta.submetas.indexOf(element);
237-
var valueIdx = meta.addSubmeta(element);
238-
if (list.length <= valueIdx) {
239-
list.length = valueIdx + 1;
240-
list[valueIdx] = value[c];
241-
}
242-
}
243-
} else {
244-
list?.add(value);
225+
var valueIdx = meta.addSubmeta(valueMeta);
226+
if (list != null && list.length <= valueIdx) {
227+
list.length = valueIdx + 1;
228+
list[valueIdx] = value;
245229
}
246230
set?.add(value);
247231
}
@@ -260,18 +244,23 @@ _handlePath(ng.Path v, ValueMetaData meta, int? timezoneOffset) {
260244
meta.type = GdbTypes.path;
261245
var path = <dynamic>[];
262246

263-
ValueMetaData startNode = ValueMetaData()..name = r'startNode$';
247+
ValueMetaData startNode = ValueMetaData()..name = MetaKey.startNode;
264248
if (v.src != null) {
265249
var value = _handleNode(v.src!, startNode, timezoneOffset);
266250
_extendListBasic(meta, startNode, path, value);
267251
}
268252

269253
if (v.steps != null) {
270254
ValueMetaData stepMeta = ValueMetaData()
271-
..name = r'steps$'
255+
..name = MetaKey.steps
272256
..type = GdbTypes.list;
273257
var steps = <dynamic>[];
274258
_handleCollection(stepMeta, v.steps, timezoneOffset, list: steps);
259+
var stepsIdx = meta.addSubmeta(stepMeta);
260+
if (path.length <= stepsIdx) {
261+
path.length = stepsIdx + 1;
262+
path[stepsIdx] = steps;
263+
}
275264
}
276265

277266
return path;
@@ -281,31 +270,33 @@ List<dynamic> _handleRelationship(
281270
ng.Edge v, ValueMetaData meta, int? timezoneOffset) {
282271
meta.type = GdbTypes.relationship;
283272
var edgeData = [];
284-
ValueMetaData startNodeId = ValueMetaData()..name = r'startNodeId$';
273+
ValueMetaData startNodeId = ValueMetaData()..name = MetaKey.startId;
285274
_extendList(meta, startNodeId, edgeData, v.src, timezoneOffset);
286275

287276
ValueMetaData idMeta = ValueMetaData()
288-
..name = r'id$'
277+
..name = MetaKey.relationshipId
289278
..type = GdbTypes.int;
290279
_extendListBasic(meta, idMeta, edgeData, v.ranking);
291280

292-
ValueMetaData endNodeId = ValueMetaData()..name = r'endNodeId$';
281+
ValueMetaData endNodeId = ValueMetaData()..name = MetaKey.endId;
293282
_extendList(meta, endNodeId, edgeData, v.dst, timezoneOffset);
294283

295284
ValueMetaData edgeMeta = ValueMetaData()
296285
..name = utf8.decode(v.name ?? [])
297-
..type = GdbTypes.relationship;
286+
..type = GdbTypes.prop;
298287
List<dynamic> edgeProp = [];
299288

300289
_handleProps(v.props, edgeMeta, edgeProp, timezoneOffset);
290+
meta.addSubmeta(edgeMeta);
291+
edgeData.add(edgeProp);
301292
return edgeData;
302293
}
303294

304295
List<dynamic> _handleNode(
305296
ng.Vertex v, ValueMetaData meta, int? timezoneOffset) {
306297
meta.type = GdbTypes.node;
307298
ValueMetaData idMeta = ValueMetaData();
308-
idMeta.name = r'id$';
299+
idMeta.name = MetaKey.nodeId;
309300
var nodeData = [];
310301

311302
_extendList(meta, idMeta, nodeData, v.vid!, timezoneOffset);

pubspec.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ environment:
88
sdk: '>=2.19.0 <3.0.0'
99

1010
dependencies:
11-
# nebula_graph:
12-
# path: D:/work/dudu-ltd/nebula_dart/nebula_graph
1311
fbthrift: ^1.0.0+1
14-
dart_gdbc: ^0.0.1
12+
dart_gdbc:
13+
path: ../dart_gdbc
1514

1615
dev_dependencies:
1716
lints: ^2.0.0

0 commit comments

Comments
 (0)