doc_service.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import 'package:dartz/dartz.dart';
  2. import 'package:appflowy_backend/dispatch/dispatch.dart';
  3. import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart';
  4. import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
  5. import 'package:appflowy_backend/protobuf/flowy-document/entities.pb.dart';
  6. import 'package:appflowy_backend/protobuf/flowy-document2/entities.pb.dart';
  7. class DocumentService {
  8. Future<Either<DocumentDataPB, FlowyError>> openDocument({
  9. required ViewPB view,
  10. }) async {
  11. await FolderEventSetLatestView(ViewIdPB(value: view.id)).send();
  12. final payload = OpenDocumentPayloadPB()
  13. ..documentId = view.id
  14. ..version = DocumentVersionPB.V1;
  15. // switch (view.dataFormat) {
  16. // case ViewDataFormatPB.DeltaFormat:
  17. // payload.documentVersion = DocumentVersionPB.V0;
  18. // break;
  19. // default:
  20. // break;
  21. // }
  22. return DocumentEventGetDocument(payload).send();
  23. }
  24. Future<Either<Unit, FlowyError>> applyEdit({
  25. required String docId,
  26. required String operations,
  27. }) {
  28. final payload = EditPayloadPB.create()
  29. ..docId = docId
  30. ..operations = operations;
  31. return DocumentEventApplyEdit(payload).send();
  32. }
  33. Future<Either<Unit, FlowyError>> closeDocument({required String docId}) {
  34. final payload = ViewIdPB(value: docId);
  35. return FolderEventCloseView(payload).send();
  36. }
  37. Future<Either<DocumentDataPB2, FlowyError>> openDocumentV2({
  38. required ViewPB view,
  39. }) async {
  40. await FolderEventSetLatestView(ViewIdPB(value: view.id)).send();
  41. final payload = OpenDocumentPayloadPBV2()..documentId = view.id;
  42. return DocumentEvent2OpenDocument(payload).send();
  43. }
  44. Future<Either<Unit, FlowyError>> closeDocumentV2({
  45. required ViewPB view,
  46. }) async {
  47. final payload = CloseDocumentPayloadPBV2()..documentId = view.id;
  48. return DocumentEvent2CloseDocument(payload).send();
  49. }
  50. Future<Either<Unit, FlowyError>> applyAction({
  51. required ViewPB view,
  52. required List<BlockActionPB> actions,
  53. }) async {
  54. final payload = ApplyActionPayloadPBV2(
  55. documentId: view.id,
  56. actions: actions,
  57. );
  58. return DocumentEvent2ApplyAction(payload).send();
  59. }
  60. }