loadDiagram method

  1. @override
Future<Either<Failure, ElectricalNode>> loadDiagram(
  1. String diagramId
)
override

Implementation

@override
Future<Either<Failure, ElectricalNode>> loadDiagram(String diagramId) async {
  try {
    final dir = await getApplicationDocumentsDirectory();
    final file = File('${dir.path}/diagrams/$diagramId.json');

    if (!await file.exists()) {
      return const Left(CacheFailure("Diagram not found"));
    }

    final jsonString = await file.readAsString();
    final jsonMap = jsonDecode(jsonString);
    final dto = ElectricalNodeDto.fromJson(jsonMap);
    return Right(dto.toDomain());
  } catch (e) {
    return Left(CacheFailure("Failed to load diagram: $e"));
  }
}