app_service.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. required ViewLayoutTypePB layout,
  24. }) {
  25. var payload = CreateViewPayloadPB.create()
  26. ..belongToId = appId
  27. ..name = name
  28. ..desc = desc
  29. ..dataType = dataType
  30. ..layout = layout;
  31. return FolderEventCreateView(payload).send();
  32. }
  33. Future<Either<List<ViewPB>, FlowyError>> getViews({required String appId}) {
  34. final payload = AppIdPB.create()..value = appId;
  35. return FolderEventReadApp(payload).send().then((result) {
  36. return result.fold(
  37. (app) => left(app.belongings.items),
  38. (error) => right(error),
  39. );
  40. });
  41. }
  42. Future<Either<Unit, FlowyError>> delete({required String appId}) {
  43. final request = AppIdPB.create()..value = appId;
  44. return FolderEventDeleteApp(request).send();
  45. }
  46. Future<Either<Unit, FlowyError>> updateApp(
  47. {required String appId, String? name}) {
  48. UpdateAppPayloadPB payload = UpdateAppPayloadPB.create()..appId = appId;
  49. if (name != null) {
  50. payload.name = name;
  51. }
  52. return FolderEventUpdateApp(payload).send();
  53. }
  54. Future<Either<Unit, FlowyError>> moveView({
  55. required String viewId,
  56. required int fromIndex,
  57. required int toIndex,
  58. }) {
  59. final payload = MoveFolderItemPayloadPB.create()
  60. ..itemId = viewId
  61. ..from = fromIndex
  62. ..to = toIndex
  63. ..ty = MoveFolderItemType.MoveView;
  64. return FolderEventMoveFolderItem(payload).send();
  65. }
  66. }