i_user_impl.dart 1.4 KB

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