Schema.fromMap constructor
Implementation
factory Schema.fromMap(Map<String, dynamic> map) {
if ((map['name'] as String).isEmpty) {
throw ArgumentError('Ensure Schema.name is not empty');
}
final Set<Field> fields = (map['fields'] != null)
? (map['fields'] as List).map((field) => Field.fromMap(field)).toSet()
: {};
final String? sortingFieldName = map['default_sorting_field'];
final Field? defaultSortingField = (fields.isNotEmpty &&
sortingFieldName != null &&
sortingFieldName.isNotEmpty)
? fields.firstWhere(
(field) => map['default_sorting_field'] == field.name,
orElse: () => throw _defaultSortingFieldNotInSchema(
sortingFieldName,
),
)
: null;
final bool? enableNestedFields = map["enable_nested_fields"];
return Schema(
map['name'],
fields,
documentCount: map['num_documents'] ?? 0,
defaultSortingField: defaultSortingField,
enableNestedFields: enableNestedFields,
);
}