i_app_impl.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:app_flowy/workspace/infrastructure/repos/app_repo.dart';
  2. import 'package:dartz/dartz.dart';
  3. import 'package:app_flowy/workspace/domain/i_app.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace-infra/view_create.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.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>, WorkspaceError>> getViews() {
  14. return repo.getViews();
  15. }
  16. @override
  17. Future<Either<View, WorkspaceError>> createView({required String name, String? desc, required ViewType viewType}) {
  18. return repo.createView(name, desc ?? "", viewType).then((result) {
  19. return result.fold(
  20. (view) => left(view),
  21. (r) => right(r),
  22. );
  23. });
  24. }
  25. @override
  26. Future<Either<Unit, WorkspaceError>> delete() {
  27. return repo.delete();
  28. }
  29. @override
  30. Future<Either<Unit, WorkspaceError>> rename(String newName) {
  31. return repo.updateApp(name: newName);
  32. }
  33. }
  34. class IAppListenerhImpl extends IAppListenr {
  35. AppListenerRepository repo;
  36. IAppListenerhImpl({
  37. required this.repo,
  38. });
  39. @override
  40. Future<void> stop() async {
  41. await repo.close();
  42. }
  43. @override
  44. void start({AppViewsChangeCallback? viewsChangeCallback, AppUpdatedCallback? updatedCallback}) {
  45. repo.startListening(viewsChanged: viewsChangeCallback, update: updatedCallback);
  46. }
  47. }