app_repo.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-workspace/app_create.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-workspace/app_query.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
  7. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pbenum.dart';
  8. import 'package:flowy_sdk/protobuf/flowy-workspace/workspace_query.pb.dart';
  9. class AppRepository {
  10. Future<Either<App, WorkspaceError>> createApp(String appName, String desc) {
  11. return WorkspaceEventGetCurWorkspace().send().then((result) {
  12. return result.fold(
  13. (workspace) {
  14. final request = CreateAppRequest.create()
  15. ..name = appName
  16. ..workspaceId = workspace.id
  17. ..desc = desc;
  18. return WorkspaceEventCreateApp(request).send();
  19. },
  20. (error) {
  21. return right(error);
  22. },
  23. );
  24. });
  25. }
  26. Future<Either<List<App>, WorkspaceError>> getApps(
  27. {required String workspaceId}) {
  28. final request = QueryWorkspaceRequest.create()
  29. ..workspaceId = workspaceId
  30. ..readApps = true;
  31. return WorkspaceEventGetWorkspace(request).send().then((result) {
  32. return result.fold(
  33. (workspace) => left(workspace.apps.items),
  34. (error) => right(error),
  35. );
  36. });
  37. }
  38. Future<Either<List<View>, WorkspaceError>> getViews({required String appId}) {
  39. final request = QueryAppRequest.create()
  40. ..appId = appId
  41. ..readViews = true;
  42. return WorkspaceEventGetApp(request).send().then((result) {
  43. return result.fold(
  44. (app) => left(app.views.items),
  45. (error) => right(error),
  46. );
  47. });
  48. }
  49. Future<Either<View, WorkspaceError>> createView(
  50. String appId, String name, String desc, ViewTypeIdentifier viewType) {
  51. final request = CreateViewRequest.create()
  52. ..appId = appId
  53. ..name = name
  54. ..desc = desc
  55. ..viewType = viewType;
  56. return WorkspaceEventCreateView(request).send();
  57. }
  58. }