listDynamicFields method

Future<Page<DynamicFieldEntry>> listDynamicFields(
  1. String parentId, {
  2. String? cursor,
  3. int? limit,
})

Implementation

Future<Page<DynamicFieldEntry>> listDynamicFields(
  String parentId, {
  String? cursor,
  int? limit,
}) async {
  final response = await _client.stateService.listDynamicFields(
    ListDynamicFieldsRequest(
      parent: parentId,
      pageSize: limit,
      pageToken: cursor != null ? base64Decode(cursor) : null,
      readMask: FieldMask(paths: ['kind', 'field_id', 'name', 'value_type', 'child_id']),
    ),
  );

  final hasNext = response.hasNextPageToken() && response.nextPageToken.isNotEmpty;
  return Page(
    data: response.dynamicFields.map((field) {
      return DynamicFieldEntry(
        name: DynamicFieldName(
          type: field.hasName() ? field.name.name : null,
          bcs: field.hasName() ? Uint8List.fromList(field.name.value) : null,
        ),
        objectType: field.valueType,
        objectId: field.childId.isNotEmpty ? field.childId : field.fieldId,
        type: _mapDynamicFieldKind(field.kind),
      );
    }).toList(),
    hasNextPage: hasNext,
    nextCursor: hasNext ? base64Encode(response.nextPageToken) : null,
  );
}