doc_service.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. class DocumentService {
  7. Future<Either<DocumentDataPB, FlowyError>> openDocument({
  8. required ViewPB view,
  9. }) async {
  10. await FolderEventSetLatestView(ViewIdPB(value: view.id)).send();
  11. final payload = OpenDocumentPayloadPB()
  12. ..documentId = view.id
  13. ..version = DocumentVersionPB.V1;
  14. // switch (view.dataFormat) {
  15. // case ViewDataFormatPB.DeltaFormat:
  16. // payload.documentVersion = DocumentVersionPB.V0;
  17. // break;
  18. // default:
  19. // break;
  20. // }
  21. return DocumentEventGetDocument(payload).send();
  22. }
  23. Future<Either<Unit, FlowyError>> applyEdit({
  24. required String docId,
  25. required String operations,
  26. }) {
  27. final payload = EditPayloadPB.create()
  28. ..docId = docId
  29. ..operations = operations;
  30. return DocumentEventApplyEdit(payload).send();
  31. }
  32. Future<Either<Unit, FlowyError>> closeDocument({required String docId}) {
  33. final payload = ViewIdPB(value: docId);
  34. return FolderEventCloseView(payload).send();
  35. }
  36. }