app_service.dart 2.1 KB

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