import 'package:dartz/dartz.dart'; import 'package:app_flowy/workspace/domain/i_user.dart'; import 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart'; export 'package:app_flowy/workspace/domain/i_user.dart'; export 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart'; class IUserImpl extends IUser { UserRepo repo; IUserImpl({ required this.repo, }); @override Future> deleteWorkspace(String workspaceId) { return repo.deleteWorkspace(workspaceId: workspaceId); } @override Future> fetchUserDetail(String userId) { return repo.fetchUserDetail(userId: userId); } @override Future> signOut() { return repo.signOut(); } @override UserDetail get user => repo.user; @override Future, WorkspaceError>> fetchWorkspaces() { return repo.fetchWorkspaces(); } } class IUserWatchImpl extends IUserWatch { UserWatchRepo repo; IUserWatchImpl({ required this.repo, }); @override void startWatching( {UserCreateWorkspaceCallback? createWorkspaceCallback, UserDeleteWorkspaceCallback? deleteWorkspaceCallback}) { repo.startWatching( createWorkspace: createWorkspaceCallback, deleteWorkspace: deleteWorkspaceCallback); } @override Future stopWatching() async { await repo.close(); } }