getData method

Future<DataRecord?> getData({
  1. required String collectionName,
  2. required String recordId,
})

Get data by record ID

Implementation

Future<DataRecord?> getData({
  required String collectionName,
  required String recordId,
}) async {
  _ensureInitialized();

  final record = await _isar.dataRecords
      .filter()
      .collectionNameEqualTo(collectionName)
      .recordIdEqualTo(recordId)
      .isDeletedEqualTo(false)
      .findFirst();

  if (record == null) return null;

  // Decrypt data if encryption is enabled
  if (encryptionService != null) {
    final decryptedData = encryptionService!.decryptData(record.data);
    return DataRecord()
      ..id = record.id
      ..collectionName = record.collectionName
      ..recordId = record.recordId
      ..data = decryptedData
      ..createdAt = record.createdAt
      ..updatedAt = record.updatedAt
      ..version = record.version
      ..syncHash = record.syncHash
      ..isSynced = record.isSynced
      ..isDeleted = record.isDeleted
      ..lastSyncedAt = record.lastSyncedAt;
  }

  return record;
}