2023-05-28 22:54:03 +08:00
|
|
|
import 'package:appflowy_backend/dispatch/dispatch.dart';
|
2024-06-13 01:32:16 +03:30
|
|
|
import 'package:appflowy_backend/protobuf/flowy-database2/protobuf.dart';
|
2023-05-28 22:54:03 +08:00
|
|
|
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
|
2024-02-24 20:54:10 +07:00
|
|
|
import 'package:appflowy_result/appflowy_result.dart';
|
2023-05-28 22:54:03 +08:00
|
|
|
|
|
|
|
class GroupBackendService {
|
|
|
|
GroupBackendService(this.viewId);
|
|
|
|
|
2024-01-25 16:37:36 +01:00
|
|
|
final String viewId;
|
|
|
|
|
2024-02-24 20:54:10 +07:00
|
|
|
Future<FlowyResult<void, FlowyError>> groupByField({
|
2023-05-28 22:54:03 +08:00
|
|
|
required String fieldId,
|
2024-06-13 01:32:16 +03:30
|
|
|
required List<int> settingContent,
|
2023-05-28 22:54:03 +08:00
|
|
|
}) {
|
|
|
|
final payload = GroupByFieldPayloadPB.create()
|
|
|
|
..viewId = viewId
|
2024-06-13 01:32:16 +03:30
|
|
|
..fieldId = fieldId
|
|
|
|
..settingContent = settingContent;
|
2023-05-28 22:54:03 +08:00
|
|
|
|
|
|
|
return DatabaseEventSetGroupByField(payload).send();
|
|
|
|
}
|
|
|
|
|
2024-02-24 20:54:10 +07:00
|
|
|
Future<FlowyResult<void, FlowyError>> updateGroup({
|
2023-05-28 22:54:03 +08:00
|
|
|
required String groupId,
|
2023-10-26 03:38:37 +02:00
|
|
|
required String fieldId,
|
2023-05-28 22:54:03 +08:00
|
|
|
String? name,
|
|
|
|
bool? visible,
|
|
|
|
}) {
|
2023-10-26 03:38:37 +02:00
|
|
|
final payload = UpdateGroupPB.create()
|
|
|
|
..fieldId = fieldId
|
|
|
|
..viewId = viewId
|
|
|
|
..groupId = groupId;
|
|
|
|
|
2023-05-28 22:54:03 +08:00
|
|
|
if (name != null) {
|
|
|
|
payload.name = name;
|
|
|
|
}
|
|
|
|
if (visible != null) {
|
|
|
|
payload.visible = visible;
|
|
|
|
}
|
|
|
|
return DatabaseEventUpdateGroup(payload).send();
|
|
|
|
}
|
2023-11-06 16:17:05 +08:00
|
|
|
|
2024-02-24 20:54:10 +07:00
|
|
|
Future<FlowyResult<void, FlowyError>> createGroup({
|
2023-11-06 16:17:05 +08:00
|
|
|
required String name,
|
|
|
|
String groupConfigId = "",
|
|
|
|
}) {
|
|
|
|
final payload = CreateGroupPayloadPB.create()
|
|
|
|
..viewId = viewId
|
|
|
|
..name = name;
|
|
|
|
|
|
|
|
return DatabaseEventCreateGroup(payload).send();
|
|
|
|
}
|
2023-11-28 10:43:22 +08:00
|
|
|
|
2024-02-24 20:54:10 +07:00
|
|
|
Future<FlowyResult<void, FlowyError>> deleteGroup({
|
2023-11-28 10:43:22 +08:00
|
|
|
required String groupId,
|
|
|
|
}) {
|
|
|
|
final payload = DeleteGroupPayloadPB.create()
|
|
|
|
..viewId = viewId
|
|
|
|
..groupId = groupId;
|
|
|
|
|
|
|
|
return DatabaseEventDeleteGroup(payload).send();
|
|
|
|
}
|
2023-05-28 22:54:03 +08:00
|
|
|
}
|