Schema.fromMap constructor

Schema.fromMap(
  1. Map<String, dynamic> map
)

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,
  );
}