i_user.dart 1.1 KB

123456789101112131415161718192021222324252627
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/workspace_create.pb.dart';
  6. export 'package:flowy_sdk/protobuf/flowy-workspace/workspace_create.pb.dart';
  7. export 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
  8. export 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart';
  9. typedef WorkspaceListUpdatedCallback = void Function(
  10. Either<List<Workspace>, WorkspaceError> workspacesOrFailed);
  11. abstract class IUser {
  12. UserProfile get user;
  13. Future<Either<UserProfile, UserError>> fetchUserProfile(String userId);
  14. Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces();
  15. Future<Either<Unit, WorkspaceError>> deleteWorkspace(String workspaceId);
  16. Future<Either<Unit, UserError>> signOut();
  17. }
  18. abstract class IUserWorkspaceListWatch {
  19. void startWatching(
  20. {WorkspaceListUpdatedCallback? workspaceListUpdatedCallback});
  21. Future<void> stopWatching();
  22. }