doc_service.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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-document2/entities.pb.dart';
  6. class DocumentService {
  7. // unused now.
  8. Future<Either<FlowyError, Unit>> createDocument({
  9. required ViewPB view,
  10. }) async {
  11. final canOpen = await openDocument(view: view);
  12. if (canOpen.isRight()) {
  13. return const Right(unit);
  14. }
  15. final payload = CreateDocumentPayloadPB()..documentId = view.id;
  16. final result = await DocumentEventCreateDocument(payload).send();
  17. return result.swap();
  18. }
  19. Future<Either<FlowyError, DocumentDataPB>> openDocument({
  20. required ViewPB view,
  21. }) async {
  22. final payload = OpenDocumentPayloadPB()..documentId = view.id;
  23. final result = await DocumentEventOpenDocument(payload).send();
  24. return result.swap();
  25. }
  26. Future<Either<FlowyError, Unit>> closeDocument({
  27. required ViewPB view,
  28. }) async {
  29. final payload = CloseDocumentPayloadPB()..documentId = view.id;
  30. final result = await DocumentEventCloseDocument(payload).send();
  31. return result.swap();
  32. }
  33. Future<Either<FlowyError, Unit>> applyAction({
  34. required String documentId,
  35. required Iterable<BlockActionPB> actions,
  36. }) async {
  37. final payload = ApplyActionPayloadPB(
  38. documentId: documentId,
  39. actions: actions,
  40. );
  41. final result = await DocumentEventApplyAction(payload).send();
  42. return result.swap();
  43. }
  44. }