doc_repo.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'dart:typed_data';
  2. import 'package:dartz/dartz.dart';
  3. import 'package:flowy_sdk/dispatch/dispatch.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-document/doc.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace/view_query.pb.dart';
  7. import 'package:flowy_sdk/protobuf/flowy-workspace/view_update.pb.dart';
  8. class DocRepository {
  9. final String docId;
  10. DocRepository({
  11. required this.docId,
  12. });
  13. Future<Either<Doc, WorkspaceError>> readDoc() {
  14. final request = OpenViewRequest.create()..viewId = docId;
  15. return WorkspaceEventOpenView(request).send();
  16. }
  17. Future<Either<Unit, WorkspaceError>> saveDoc({required Uint8List data}) {
  18. final request = SaveViewDataRequest.create()
  19. ..viewId = docId
  20. ..data = data;
  21. return WorkspaceEventSaveViewData(request).send();
  22. }
  23. Future<Either<Unit, WorkspaceError>> applyChangeset(
  24. {required Uint8List data}) {
  25. final request = ApplyChangesetRequest.create()
  26. ..viewId = docId
  27. ..data = data;
  28. return WorkspaceEventApplyChangeset(request).send();
  29. }
  30. Future<Either<Unit, WorkspaceError>> closeDoc(
  31. {String? name, String? desc, String? text}) {
  32. throw UnimplementedError();
  33. }
  34. }