i_user_impl.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'package:dartz/dartz.dart';
  2. import 'package:app_flowy/workspace/domain/i_user.dart';
  3. import 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  5. export 'package:app_flowy/workspace/domain/i_user.dart';
  6. export 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart';
  7. class IUserImpl extends IUser {
  8. UserRepo repo;
  9. IUserImpl({
  10. required this.repo,
  11. });
  12. @override
  13. Future<Either<Unit, WorkspaceError>> deleteWorkspace(String workspaceId) {
  14. return repo.deleteWorkspace(workspaceId: workspaceId);
  15. }
  16. @override
  17. Future<Either<UserDetail, UserError>> fetchUserDetail(String userId) {
  18. return repo.fetchUserDetail(userId: userId);
  19. }
  20. @override
  21. Future<Either<Unit, UserError>> signOut() {
  22. return repo.signOut();
  23. }
  24. @override
  25. UserDetail get user => repo.user;
  26. @override
  27. Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces() {
  28. return repo.fetchWorkspaces();
  29. }
  30. }
  31. class IUserWatchImpl extends IUserWatch {
  32. UserWatchRepo repo;
  33. IUserWatchImpl({
  34. required this.repo,
  35. });
  36. @override
  37. void startWatching(
  38. {UserCreateWorkspaceCallback? createWorkspaceCallback,
  39. UserDeleteWorkspaceCallback? deleteWorkspaceCallback}) {
  40. repo.startWatching(
  41. createWorkspace: createWorkspaceCallback,
  42. deleteWorkspace: deleteWorkspaceCallback);
  43. }
  44. @override
  45. Future<void> stopWatching() async {
  46. await repo.close();
  47. }
  48. }