refactor: group event (#2640)

* refactor: group event

* fix: tauri build
This commit is contained in:
Nathan.fooo
2023-05-28 22:54:03 +08:00
committed by GitHub
parent 75d40b79d0
commit 6bbdc7ceff
39 changed files with 602 additions and 504 deletions

View File

@ -178,7 +178,7 @@ class FilterBackendService {
required FieldType fieldType,
required List<int> data,
}) {
var insertFilterPayload = AlterFilterPayloadPB.create()
var insertFilterPayload = UpdateFilterPayloadPB.create()
..fieldId = fieldId
..fieldType = fieldType
..viewId = viewId
@ -190,7 +190,7 @@ class FilterBackendService {
final payload = DatabaseSettingChangesetPB.create()
..viewId = viewId
..alterFilter = insertFilterPayload;
..updateFilter = insertFilterPayload;
return DatabaseEventUpdateDatabaseSetting(payload).send().then((result) {
return result.fold(
(l) => left(l),

View File

@ -8,7 +8,7 @@ import 'package:dartz/dartz.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/group.pb.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/group_changeset.pb.dart';
typedef GroupUpdateValue = Either<GroupChangesetPB, FlowyError>;
typedef GroupUpdateValue = Either<GroupChangesPB, FlowyError>;
typedef GroupByNewFieldValue = Either<List<GroupPB>, FlowyError>;
class DatabaseGroupListener {
@ -36,17 +36,17 @@ class DatabaseGroupListener {
Either<Uint8List, FlowyError> result,
) {
switch (ty) {
case DatabaseNotification.DidUpdateGroups:
case DatabaseNotification.DidUpdateNumOfGroups:
result.fold(
(payload) => _numOfGroupsNotifier?.value =
left(GroupChangesetPB.fromBuffer(payload)),
left(GroupChangesPB.fromBuffer(payload)),
(error) => _numOfGroupsNotifier?.value = right(error),
);
break;
case DatabaseNotification.DidGroupByField:
result.fold(
(payload) => _groupByFieldNotifier?.value =
left(GroupChangesetPB.fromBuffer(payload).initialGroups),
left(GroupChangesPB.fromBuffer(payload).initialGroups),
(error) => _groupByFieldNotifier?.value = right(error),
);
break;

View File

@ -0,0 +1,37 @@
import 'package:appflowy_backend/dispatch/dispatch.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/group.pb.dart';
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
import 'package:dartz/dartz.dart';
class GroupBackendService {
final String viewId;
GroupBackendService(this.viewId);
Future<Either<Unit, FlowyError>> groupByField({
required String fieldId,
required FieldType fieldType,
}) {
final payload = GroupByFieldPayloadPB.create()
..viewId = viewId
..fieldId = fieldId
..fieldType = fieldType;
return DatabaseEventSetGroupByField(payload).send();
}
Future<Either<Unit, FlowyError>> updateGroup({
required String groupId,
String? name,
bool? visible,
}) {
final payload = UpdateGroupPB.create()..groupId = groupId;
if (name != null) {
payload.name = name;
}
if (visible != null) {
payload.visible = visible;
}
return DatabaseEventUpdateGroup(payload).send();
}
}

View File

@ -1,23 +1,24 @@
import 'package:appflowy/plugins/database_view/application/field/field_controller.dart';
import 'package:appflowy/plugins/database_view/application/setting/setting_service.dart';
import 'package:appflowy_backend/log.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'dart:async';
import '../group/group_service.dart';
part 'group_bloc.freezed.dart';
class DatabaseGroupBloc extends Bloc<DatabaseGroupEvent, DatabaseGroupState> {
final FieldController _fieldController;
final SettingBackendService _settingBackendSvc;
final GroupBackendService _groupBackendSvc;
Function(List<FieldInfo>)? _onFieldsFn;
DatabaseGroupBloc({
required String viewId,
required FieldController fieldController,
}) : _fieldController = fieldController,
_settingBackendSvc = SettingBackendService(viewId: viewId),
_groupBackendSvc = GroupBackendService(viewId),
super(DatabaseGroupState.initial(viewId, fieldController.fieldInfos)) {
on<DatabaseGroupEvent>(
(event, emit) async {
@ -29,7 +30,7 @@ class DatabaseGroupBloc extends Bloc<DatabaseGroupEvent, DatabaseGroupState> {
emit(state.copyWith(fieldContexts: fieldContexts));
},
setGroupByField: (String fieldId, FieldType fieldType) async {
final result = await _settingBackendSvc.groupByField(
final result = await _groupBackendSvc.groupByField(
fieldId: fieldId,
fieldType: fieldType,
);

View File

@ -2,8 +2,6 @@ import 'package:appflowy_backend/protobuf/flowy-database2/database_entities.pb.d
import 'package:dartz/dartz.dart';
import 'package:appflowy_backend/dispatch/dispatch.dart';
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/group.pb.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/setting_entities.pb.dart';
class SettingBackendService {
@ -15,19 +13,4 @@ class SettingBackendService {
final payload = DatabaseViewIdPB.create()..value = viewId;
return DatabaseEventGetDatabaseSetting(payload).send();
}
Future<Either<Unit, FlowyError>> groupByField({
required String fieldId,
required FieldType fieldType,
}) {
final insertGroupPayload = InsertGroupPayloadPB.create()
..viewId = viewId
..fieldId = fieldId
..fieldType = fieldType;
final payload = DatabaseSettingChangesetPB.create()
..viewId = viewId
..insertGroup = insertGroupPayload;
return DatabaseEventUpdateDatabaseSetting(payload).send();
}
}

View File

@ -29,7 +29,7 @@ class SortBackendService {
required FieldType fieldType,
required SortConditionPB condition,
}) {
var insertSortPayload = AlterSortPayloadPB.create()
var insertSortPayload = UpdateSortPayloadPB.create()
..fieldId = fieldId
..fieldType = fieldType
..viewId = viewId
@ -38,7 +38,7 @@ class SortBackendService {
final payload = DatabaseSettingChangesetPB.create()
..viewId = viewId
..alterSort = insertSortPayload;
..updateSort = insertSortPayload;
return DatabaseEventUpdateDatabaseSetting(payload).send().then((result) {
return result.fold(
(l) => left(l),
@ -55,7 +55,7 @@ class SortBackendService {
required FieldType fieldType,
required SortConditionPB condition,
}) {
var insertSortPayload = AlterSortPayloadPB.create()
var insertSortPayload = UpdateSortPayloadPB.create()
..fieldId = fieldId
..fieldType = fieldType
..viewId = viewId
@ -63,7 +63,7 @@ class SortBackendService {
final payload = DatabaseSettingChangesetPB.create()
..viewId = viewId
..alterSort = insertSortPayload;
..updateSort = insertSortPayload;
return DatabaseEventUpdateDatabaseSetting(payload).send().then((result) {
return result.fold(
(l) => left(l),