user_repo.dart 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-user/user_detail.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace/workspace_create.pb.dart';
  7. class UserRepo {
  8. final UserDetail user;
  9. UserRepo({
  10. required this.user,
  11. });
  12. Future<Either<UserDetail, UserError>> fetchUserDetail(
  13. {required String userId}) {
  14. return UserEventGetStatus().send();
  15. }
  16. Future<Either<Unit, WorkspaceError>> deleteWorkspace(
  17. {required String workspaceId}) {
  18. throw UnimplementedError();
  19. }
  20. Future<Either<Unit, UserError>> signOut() {
  21. return UserEventSignOut().send();
  22. }
  23. Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces() {
  24. return WorkspaceEventReadAllWorkspace().send().then((result) {
  25. return result.fold(
  26. (workspaces) => left(workspaces.items),
  27. (r) => right(r),
  28. );
  29. });
  30. }
  31. }