i_workspace_impl.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:app_flowy/home/domain/i_workspace.dart';
  2. import 'package:app_flowy/home/infrastructure/repos/workspace_repo.dart';
  3. import 'package:dartz/dartz.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace/app_create.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  6. export 'package:app_flowy/home/domain/i_workspace.dart';
  7. class IWorkspaceImpl extends IWorkspace {
  8. WorkspaceRepo repo;
  9. IWorkspaceImpl({
  10. required this.repo,
  11. });
  12. @override
  13. Future<Either<App, WorkspaceError>> createApp(
  14. {required String name, String? desc}) {
  15. return repo.createApp(name, desc ?? "");
  16. }
  17. @override
  18. Future<Either<List<App>, WorkspaceError>> getApps() {
  19. return repo.getWorkspace(readApps: true).then((result) {
  20. return result.fold(
  21. (workspace) => left(workspace.apps.items),
  22. (error) => right(error),
  23. );
  24. });
  25. }
  26. }
  27. class IWorkspaceWatchImpl extends IWorkspaceWatch {
  28. WorkspaceWatchRepo repo;
  29. IWorkspaceWatchImpl({
  30. required this.repo,
  31. });
  32. @override
  33. void startWatching(
  34. {WorkspaceAddAppCallback? addAppCallback,
  35. WorkspaceUpdatedCallback? updatedCallback}) {
  36. repo.startWatching(
  37. addAppCallback: addAppCallback, updatedCallback: updatedCallback);
  38. }
  39. @override
  40. Future<void> stopWatching() async {
  41. await repo.close();
  42. }
  43. }