app_service.dart 2.0 KB

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