getUnsyncedItems method
Retrieves a list of unsynced items from the local database,
optionally limiting
the number of items to limit
.
Implementation
@override
Future<List<T>> getUnsyncedItems({int? limit}) async {
_logger.d('[SqliteLocalRepository] Fetching unsynced items');
// First, let's get all items and log them
final allMaps = await (database).query(tableName);
_logger.d(
'[SqliteLocalRepository] Total items in database: ${allMaps.length}');
for (final map in allMaps) {
_logger.d(
'[SqliteLocalRepository] Item: id=${map['id']}, updatedAt=${map['updated_at']}, serverTimeSyncedAt=${map['server_time_synced_at']}, deletedAt=${map['deleted_at']}');
}
// Now, let's get the unsynced items
final maps = await (database).query(
tableName,
where:
'server_time_synced_at IS NULL OR server_time_synced_at < updated_at',
limit: limit,
orderBy: 'updated_at',
);
_logger.d(
'[SqliteLocalRepository] Found ${maps.length} potentially unsynced items');
for (final map in maps) {
_logger.d(
'[SqliteLocalRepository] Unsynced item: id=${map['id']}, updatedAt=${map['updated_at']}, serverTimeSyncedAt=${map['server_time_synced_at']}, deletedAt=${map['deleted_at']}');
}
return maps.map(fromJson).toList();
}