fromServerJson method

  1. @override
ColeccionObjBox fromServerJson(
  1. Map<String, dynamic> json,
  2. String coleccion, {
  3. List<String> alternativeKeys = const [],
  4. List<String> alternativeHnswKeys = const [],
})
override

Implementation

@override
ColeccionObjBox fromServerJson(Map<String, dynamic> json, String coleccion,
    {List<String> alternativeKeys = const [],
    List<String> alternativeHnswKeys = const []}) {
  // Mapea las alternativeKeys directamente desde el JSON
  List<String> alternativeKey = alternativeKeys.map((key) {
    try {
      return json['data'][key]?.toString() ?? '';
    } catch (e) {
      log('Error parsing alternative key: $e $alternativeKeys ${json['data']}',
          name: 'ColeccionObjBox');
      return '';
    }
  }).toList();

  // Mapea las alternativeHnswKeys y maneja las excepciones
  List<List<double>> hnswkeys = alternativeHnswKeys.map((key) {
    try {
      var value = json['data'][key] ?? [];
      return [
        double.tryParse(value[0].toString()) ?? 0.0,
        double.tryParse(value[1].toString()) ?? 0.0
      ];
    } catch (e) {
      log('Error parsing HNSW key: $e $alternativeHnswKeys ${json['data']}',
          name: 'ColeccionObjBox');
      return [0.0, 0.0];
    }
  }).toList();

  return ColeccionObjBox(
      coleccion: coleccion,
      idServer: json['_id'] ?? '',
      idMobile: '',
      data: jsonEncode(json['data']),
      dataOriginal: jsonEncode(json['data']),
      estado: json['estado'] ?? '',
      creadoEl: json['creadoEl'] ?? '',
      idAuth: json['idAuth'] ?? '',
      coleccionAuth: json['coleccionAuth'] ?? '',
      alternativeKey: alternativeKey.isNotEmpty ? alternativeKey[0] : '',
      alternativeKey1: alternativeKey.length > 1 ? alternativeKey[1] : '',
      alternativeKey2: alternativeKey.length > 2 ? alternativeKey[2] : '',
      alternativeHnswKey: hnswkeys.isNotEmpty ? hnswkeys[0] : [],
      alternativeHnswKey1: hnswkeys.length > 1 ? hnswkeys[1] : [],
      alternativeHnswKey2: hnswkeys.length > 2 ? hnswkeys[2] : [],
      eTransfer: '');
}