mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-07-19 07:03:37 +00:00

* chore: migrate the rewrite feature * chore: rename flowy-document * feat: add initial_data interface * chore: rename the document event * fix: font name error * fix: export page UI issues * feat: implement editor migration 0.1.x -> 0.2.0 * feat: support import old json * fix: nested list error * chore: update pubspec
53 lines
1.7 KiB
Dart
53 lines
1.7 KiB
Dart
import 'package:dartz/dartz.dart';
|
|
import 'package:appflowy_backend/dispatch/dispatch.dart';
|
|
|
|
import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart';
|
|
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
|
|
import 'package:appflowy_backend/protobuf/flowy-document2/entities.pb.dart';
|
|
|
|
class DocumentService {
|
|
// unused now.
|
|
Future<Either<FlowyError, Unit>> createDocument({
|
|
required ViewPB view,
|
|
}) async {
|
|
final canOpen = await openDocument(view: view);
|
|
if (canOpen.isRight()) {
|
|
return const Right(unit);
|
|
}
|
|
final payload = CreateDocumentPayloadPB()..documentId = view.id;
|
|
final result = await DocumentEventCreateDocument(payload).send();
|
|
return result.swap();
|
|
}
|
|
|
|
Future<Either<FlowyError, DocumentDataPB>> openDocument({
|
|
required ViewPB view,
|
|
}) async {
|
|
// set the latest view
|
|
await FolderEventSetLatestView(ViewIdPB(value: view.id)).send();
|
|
|
|
final payload = OpenDocumentPayloadPB()..documentId = view.id;
|
|
final result = await DocumentEventOpenDocument(payload).send();
|
|
return result.swap();
|
|
}
|
|
|
|
Future<Either<FlowyError, Unit>> closeDocument({
|
|
required ViewPB view,
|
|
}) async {
|
|
final payload = CloseDocumentPayloadPB()..documentId = view.id;
|
|
final result = await DocumentEventCloseDocument(payload).send();
|
|
return result.swap();
|
|
}
|
|
|
|
Future<Either<FlowyError, Unit>> applyAction({
|
|
required String documentId,
|
|
required Iterable<BlockActionPB> actions,
|
|
}) async {
|
|
final payload = ApplyActionPayloadPB(
|
|
documentId: documentId,
|
|
actions: actions,
|
|
);
|
|
final result = await DocumentEventApplyAction(payload).send();
|
|
return result.swap();
|
|
}
|
|
}
|