doc_repo.dart 948 B

1234567891011121314151617181920212223242526272829
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-document/doc.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace-infra/view_query.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  6. class DocRepository {
  7. final String docId;
  8. DocRepository({
  9. required this.docId,
  10. });
  11. Future<Either<DocDelta, WorkspaceError>> readDoc() {
  12. final request = QueryViewRequest(viewIds: [docId]);
  13. return WorkspaceEventOpenView(request).send();
  14. }
  15. Future<Either<DocDelta, WorkspaceError>> composeDelta({required String data}) {
  16. final request = DocDelta.create()
  17. ..docId = docId
  18. ..data = data;
  19. return WorkspaceEventApplyDocDelta(request).send();
  20. }
  21. Future<Either<Unit, WorkspaceError>> closeDoc() {
  22. final request = QueryViewRequest(viewIds: [docId]);
  23. return WorkspaceEventCloseView(request).send();
  24. }
  25. }