app_service.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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-data-model/app.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
  7. import 'package:app_flowy/plugin/plugin.dart';
  8. class AppService {
  9. final String appId;
  10. AppService({
  11. required this.appId,
  12. });
  13. Future<Either<App, FlowyError>> getAppDesc({required String appId}) {
  14. final payload = AppId.create()..value = appId;
  15. return FolderEventReadApp(payload).send();
  16. }
  17. Future<Either<View, FlowyError>> createView({
  18. required String appId,
  19. required String name,
  20. required String desc,
  21. required PluginDataType dataType,
  22. required PluginType pluginType,
  23. }) {
  24. final payload = CreateViewPayload.create()
  25. ..belongToId = appId
  26. ..name = name
  27. ..desc = desc
  28. ..dataType = dataType
  29. ..pluginType = pluginType;
  30. return FolderEventCreateView(payload).send();
  31. }
  32. Future<Either<List<View>, FlowyError>> getViews({required String appId}) {
  33. final payload = AppId.create()..value = appId;
  34. return FolderEventReadApp(payload).send().then((result) {
  35. return result.fold(
  36. (app) => left(app.belongings.items),
  37. (error) => right(error),
  38. );
  39. });
  40. }
  41. Future<Either<Unit, FlowyError>> delete({required String appId}) {
  42. final request = AppId.create()..value = appId;
  43. return FolderEventDeleteApp(request).send();
  44. }
  45. Future<Either<Unit, FlowyError>> updateApp({required String appId, String? name}) {
  46. UpdateAppPayload payload = UpdateAppPayload.create()..appId = appId;
  47. if (name != null) {
  48. payload.name = name;
  49. }
  50. return FolderEventUpdateApp(payload).send();
  51. }
  52. Future<Either<Unit, FlowyError>> moveView({
  53. required String viewId,
  54. required int fromIndex,
  55. required int toIndex,
  56. }) {
  57. final payload = MoveFolderItemPayload.create()
  58. ..itemId = viewId
  59. ..from = fromIndex
  60. ..to = toIndex
  61. ..ty = MoveFolderItemType.MoveView;
  62. return FolderEventMoveItem(payload).send();
  63. }
  64. }