row_service.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-grid/block_entities.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-grid/grid_entities.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-grid/group_changeset.pb.dart';
  7. import 'package:flowy_sdk/protobuf/flowy-grid/row_entities.pb.dart';
  8. class RowFFIService {
  9. final String gridId;
  10. RowFFIService({
  11. required this.gridId,
  12. });
  13. Future<Either<RowPB, FlowyError>> createRow(String rowId) {
  14. final payload = CreateTableRowPayloadPB.create()
  15. ..gridId = gridId
  16. ..startRowId = rowId;
  17. return GridEventCreateTableRow(payload).send();
  18. }
  19. Future<Either<OptionalRowPB, FlowyError>> getRow(String rowId) {
  20. final payload = RowIdPB.create()
  21. ..gridId = gridId
  22. ..rowId = rowId;
  23. return GridEventGetRow(payload).send();
  24. }
  25. Future<Either<Unit, FlowyError>> deleteRow(String rowId) {
  26. final payload = RowIdPB.create()
  27. ..gridId = gridId
  28. ..rowId = rowId;
  29. return GridEventDeleteRow(payload).send();
  30. }
  31. Future<Either<Unit, FlowyError>> duplicateRow(String rowId) {
  32. final payload = RowIdPB.create()
  33. ..gridId = gridId
  34. ..rowId = rowId;
  35. return GridEventDuplicateRow(payload).send();
  36. }
  37. }
  38. class MoveRowFFIService {
  39. final String gridId;
  40. MoveRowFFIService({
  41. required this.gridId,
  42. });
  43. Future<Either<Unit, FlowyError>> moveRow({
  44. required String fromRowId,
  45. required String toRowId,
  46. }) {
  47. var payload = MoveRowPayloadPB.create()
  48. ..viewId = gridId
  49. ..fromRowId = fromRowId
  50. ..toRowId = toRowId;
  51. return GridEventMoveRow(payload).send();
  52. }
  53. Future<Either<Unit, FlowyError>> moveGroupRow({
  54. required String fromRowId,
  55. required String toGroupId,
  56. required String? toRowId,
  57. }) {
  58. var payload = MoveGroupRowPayloadPB.create()
  59. ..viewId = gridId
  60. ..fromRowId = fromRowId
  61. ..toGroupId = toGroupId;
  62. if (toRowId != null) {
  63. payload.toRowId = toRowId;
  64. }
  65. return GridEventMoveGroupRow(payload).send();
  66. }
  67. Future<Either<Unit, FlowyError>> moveGroup({
  68. required String fromGroupId,
  69. required String toGroupId,
  70. }) {
  71. final payload = MoveGroupPayloadPB.create()
  72. ..viewId = gridId
  73. ..fromGroupId = fromGroupId
  74. ..toGroupId = toGroupId;
  75. return GridEventMoveGroup(payload).send();
  76. }
  77. }