doc_service.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-folder/view.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-sync/document.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-document/entities.pb.dart';
  7. class DocumentService {
  8. Future<Either<DocumentSnapshotPB, FlowyError>> openDocument({
  9. required String docId,
  10. }) async {
  11. await FolderEventSetLatestView(ViewIdPB(value: docId)).send();
  12. final payload = DocumentIdPB(value: docId);
  13. return DocumentEventGetDocument(payload).send();
  14. }
  15. Future<Either<Unit, FlowyError>> applyEdit({
  16. required String docId,
  17. required String data,
  18. String operations = "",
  19. }) {
  20. final payload = EditPayloadPB.create()
  21. ..docId = docId
  22. ..operations = operations
  23. ..operationsStr = data;
  24. return DocumentEventApplyEdit(payload).send();
  25. }
  26. Future<Either<Unit, FlowyError>> closeDocument({required String docId}) {
  27. final request = ViewIdPB(value: docId);
  28. return FolderEventCloseView(request).send();
  29. }
  30. }