i_user.dart 1.3 KB

12345678910111213141516171819202122232425262728293031
  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_detail.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_detail.pb.dart';
  9. export 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  10. typedef UserCreateWorkspaceCallback = void Function(
  11. Either<List<Workspace>, WorkspaceError> workspacesOrFailed);
  12. typedef UserDeleteWorkspaceCallback = void Function(
  13. Either<List<Workspace>, WorkspaceError> workspacesOrFailed);
  14. abstract class IUser {
  15. UserDetail get user;
  16. Future<Either<UserDetail, UserError>> fetchUserDetail(String userId);
  17. Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces();
  18. Future<Either<Unit, WorkspaceError>> deleteWorkspace(String workspaceId);
  19. Future<Either<Unit, UserError>> signOut();
  20. }
  21. abstract class IUserWatch {
  22. void startWatching(
  23. {UserCreateWorkspaceCallback? createWorkspaceCallback,
  24. UserDeleteWorkspaceCallback? deleteWorkspaceCallback});
  25. Future<void> stopWatching();
  26. }