app_service.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import 'dart:async';
  2. import 'package:dartz/dartz.dart';
  3. import 'package:flowy_sdk/dispatch/dispatch.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-folder/app.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-folder/view.pb.dart';
  7. import 'package:app_flowy/startup/plugin/plugin.dart';
  8. class AppService {
  9. final String appId;
  10. AppService({
  11. required this.appId,
  12. });
  13. Future<Either<AppPB, FlowyError>> getAppDesc({required String appId}) {
  14. final payload = AppIdPB.create()..value = appId;
  15. return FolderEventReadApp(payload).send();
  16. }
  17. Future<Either<ViewPB, FlowyError>> createView({
  18. required String appId,
  19. required String name,
  20. required String desc,
  21. required ViewDataTypePB dataType,
  22. required PluginType pluginType,
  23. SubViewDataTypePB? subDataType,
  24. }) {
  25. var payload = CreateViewPayloadPB.create()
  26. ..belongToId = appId
  27. ..name = name
  28. ..desc = desc
  29. ..dataType = dataType
  30. ..pluginType = pluginType;
  31. if (subDataType != null) {
  32. payload.subDataType = subDataType;
  33. }
  34. return FolderEventCreateView(payload).send();
  35. }
  36. Future<Either<List<ViewPB>, FlowyError>> getViews({required String appId}) {
  37. final payload = AppIdPB.create()..value = appId;
  38. return FolderEventReadApp(payload).send().then((result) {
  39. return result.fold(
  40. (app) => left(app.belongings.items),
  41. (error) => right(error),
  42. );
  43. });
  44. }
  45. Future<Either<Unit, FlowyError>> delete({required String appId}) {
  46. final request = AppIdPB.create()..value = appId;
  47. return FolderEventDeleteApp(request).send();
  48. }
  49. Future<Either<Unit, FlowyError>> updateApp(
  50. {required String appId, String? name}) {
  51. UpdateAppPayloadPB payload = UpdateAppPayloadPB.create()..appId = appId;
  52. if (name != null) {
  53. payload.name = name;
  54. }
  55. return FolderEventUpdateApp(payload).send();
  56. }
  57. Future<Either<Unit, FlowyError>> moveView({
  58. required String viewId,
  59. required int fromIndex,
  60. required int toIndex,
  61. }) {
  62. final payload = MoveFolderItemPayloadPB.create()
  63. ..itemId = viewId
  64. ..from = fromIndex
  65. ..to = toIndex
  66. ..ty = MoveFolderItemType.MoveView;
  67. return FolderEventMoveFolderItem(payload).send();
  68. }
  69. }