getSavedDiagrams method

  1. @override
Future<Either<Failure, List<ElectricalNode>>> getSavedDiagrams()
override

Implementation

@override
Future<Either<Failure, List<ElectricalNode>>> getSavedDiagrams() async {
  try {
    final dir = await getApplicationDocumentsDirectory();
    final diagramsDir = Directory('${dir.path}/diagrams');
    if (!await diagramsDir.exists()) {
      return const Right([]);
    }

    final List<ElectricalNode> diagrams = [];
    await for (final file in diagramsDir.list()) {
      if (file is File && file.path.endsWith('.json')) {
        try {
          final jsonString = await file.readAsString();
          final jsonMap = jsonDecode(jsonString);
          final dto = ElectricalNodeDto.fromJson(jsonMap);
          diagrams.add(dto.toDomain());
        } catch (e) {
          // Skip invalid diagram files
        }
      }
    }
    return Right(diagrams);
  } catch (e) {
    return Left(CacheFailure("Failed to list diagrams: $e"));
  }
}