saveDiagram method

  1. @override
Future<Either<Failure, ElectricalNode>> saveDiagram(
  1. ElectricalNode root
)
override

Implementation

@override
Future<Either<Failure, ElectricalNode>> saveDiagram(
    ElectricalNode root) async {
  try {
    final dto = root.toDto();
    final jsonMap = dto.toJson();
    final jsonString = jsonEncode(jsonMap);

    final dir = await getApplicationDocumentsDirectory();
    final diagramsDir = Directory('${dir.path}/diagrams');
    if (!await diagramsDir.exists()) {
      await diagramsDir.create(recursive: true);
    }

    final file = File('${diagramsDir.path}/${root.id}.json');
    await file.writeAsString(jsonString);

    return Right(root);
  } catch (e) {
    return Left(CacheFailure("Failed to save diagram: $e"));
  }
}