doc_repo.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-editor/doc_create.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-editor/doc_modify.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-editor/doc_query.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-editor/errors.pb.dart';
  7. class DocRepository {
  8. final String docId;
  9. DocRepository({
  10. required this.docId,
  11. });
  12. Future<Either<DocInfo, EditorError>> createDoc(
  13. {required String name, String? desc, String? text}) {
  14. final request =
  15. CreateDocRequest(id: docId, name: name, desc: desc, text: text);
  16. return EditorEventCreateDoc(request).send();
  17. }
  18. Future<Either<DocInfo, EditorError>> readDoc() {
  19. final request = QueryDocRequest.create()..docId = docId;
  20. return EditorEventReadDocInfo(request).send();
  21. }
  22. Future<Either<DocData, EditorError>> readDocData(String path) {
  23. final request = QueryDocDataRequest.create()
  24. ..docId = docId
  25. ..path = path;
  26. return EditorEventReadDocData(request).send();
  27. }
  28. Future<Either<Unit, EditorError>> updateDoc(
  29. {String? name, String? desc, String? text}) {
  30. final request = UpdateDocRequest(id: docId, name: name, text: text);
  31. return EditorEventUpdateDoc(request).send();
  32. }
  33. Future<Either<Unit, EditorError>> closeDoc(
  34. {String? name, String? desc, String? text}) {
  35. throw UnimplementedError();
  36. }
  37. }