DeviceKeysList.fromDbJson constructor

DeviceKeysList.fromDbJson(
  1. Map<String, dynamic> dbEntry,
  2. List<Map<String, dynamic>> childEntries,
  3. List<Map<String, dynamic>> crossSigningEntries,
  4. Client client,
)

Implementation

DeviceKeysList.fromDbJson(
  Map<String, dynamic> dbEntry,
  List<Map<String, dynamic>> childEntries,
  List<Map<String, dynamic>> crossSigningEntries,
  this.client,
) : userId = dbEntry['user_id'] ?? '' {
  outdated = dbEntry['outdated'];
  deviceKeys = {};
  for (final childEntry in childEntries) {
    try {
      final entry = DeviceKeys.fromDb(childEntry, client);
      if (!entry.isValid) throw Exception('Invalid device keys');
      deviceKeys[childEntry['device_id']] = entry;
    } catch (e, s) {
      Logs().w('Skipping invalid user device key', e, s);
      outdated = true;
    }
  }
  for (final crossSigningEntry in crossSigningEntries) {
    try {
      final entry = CrossSigningKey.fromDbJson(crossSigningEntry, client);
      if (!entry.isValid) throw Exception('Invalid device keys');
      crossSigningKeys[crossSigningEntry['public_key']] = entry;
    } catch (e, s) {
      Logs().w('Skipping invalid cross siging key', e, s);
      outdated = true;
    }
  }
}