i_app_impl.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:app_flowy/workspace/infrastructure/repos/app_repo.dart';
  2. import 'package:dartz/dartz.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart' as workspace;
  4. import 'package:app_flowy/workspace/domain/i_app.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
  6. export 'package:app_flowy/workspace/domain/i_app.dart';
  7. class IAppImpl extends IApp {
  8. AppRepository repo;
  9. IAppImpl({
  10. required this.repo,
  11. });
  12. @override
  13. Future<Either<List<View>, workspace.WorkspaceError>> getViews() {
  14. return repo.getViews();
  15. }
  16. @override
  17. Future<Either<View, workspace.WorkspaceError>> createView(
  18. {required String name, String? desc, required ViewType viewType}) {
  19. return repo.createView(name, desc ?? "", viewType).then((result) {
  20. return result.fold(
  21. (view) => left(view),
  22. (r) => right(r),
  23. );
  24. });
  25. }
  26. }
  27. class IAppWatchImpl extends IAppWatch {
  28. AppWatchRepository repo;
  29. IAppWatchImpl({
  30. required this.repo,
  31. });
  32. @override
  33. void startWatching(
  34. {AppCreateViewCallback? addViewCallback,
  35. AppUpdatedCallback? updatedCallback}) {
  36. repo.startWatching(createView: addViewCallback, update: updatedCallback);
  37. }
  38. @override
  39. Future<void> stopWatching() async {
  40. await repo.close();
  41. }
  42. }