app_service.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. class AppService {
  8. Future<Either<App, FlowyError>> getAppDesc({required String appId}) {
  9. final request = AppId.create()..value = appId;
  10. return FolderEventReadApp(request).send();
  11. }
  12. Future<Either<View, FlowyError>> createView({
  13. required String appId,
  14. required String name,
  15. required String desc,
  16. required ViewType viewType,
  17. }) {
  18. final request = CreateViewPayload.create()
  19. ..belongToId = appId
  20. ..name = name
  21. ..desc = desc
  22. ..viewType = viewType;
  23. return FolderEventCreateView(request).send();
  24. }
  25. Future<Either<List<View>, FlowyError>> getViews({required String appId}) {
  26. final request = AppId.create()..value = appId;
  27. return FolderEventReadApp(request).send().then((result) {
  28. return result.fold(
  29. (app) => left(app.belongings.items),
  30. (error) => right(error),
  31. );
  32. });
  33. }
  34. Future<Either<Unit, FlowyError>> delete({required String appId}) {
  35. final request = AppId.create()..value = appId;
  36. return FolderEventDeleteApp(request).send();
  37. }
  38. Future<Either<Unit, FlowyError>> updateApp({required String appId, String? name}) {
  39. UpdateAppPayload request = UpdateAppPayload.create()..appId = appId;
  40. if (name != null) {
  41. request.name = name;
  42. }
  43. return FolderEventUpdateApp(request).send();
  44. }
  45. }