completed migrating data scope from user to workspace

This commit is contained in:
2026-06-22 22:10:38 +02:00
parent 62c7f53de0
commit ae2705363a
37 changed files with 918 additions and 221 deletions

View File

@@ -53,7 +53,7 @@ class GroupController extends ChangeNotifier {
}
Future<ApiResponse<PageableModel>> listGroups({
required String userId,
required String workspaceId,
int page = 0,
int size = 20,
String? name,
@@ -69,7 +69,7 @@ class GroupController extends ChangeNotifier {
try {
final params = <String, String>{
'userId': userId,
'workspaceId': workspaceId,
'page': page.toString(),
'size': size.toString(),
};
@@ -78,7 +78,7 @@ class GroupController extends ChangeNotifier {
}
final raw = await http.get(
'/public/recipient-groups?${buildQueryParameters(params)}',
'/recipient-groups?${buildQueryParameters(params)}',
);
final response = _unwrap(raw);
final pageableModel = PageableModel.fromJson(
@@ -115,17 +115,17 @@ class GroupController extends ChangeNotifier {
}
}
Future<void> searchGroups({required String userId, String? name}) async {
Future<void> searchGroups({required String workspaceId, String? name}) async {
model.searchQuery = name ?? '';
await listGroups(userId: userId, page: 0, name: name);
await listGroups(workspaceId: workspaceId, page: 0, name: name);
}
Future<void> loadNextPage({required String userId}) async {
Future<void> loadNextPage({required String workspaceId}) async {
if (model.isLoadingMore || model.currentPage + 1 >= model.totalPages) {
return;
}
await listGroups(
userId: userId,
workspaceId: workspaceId,
page: model.currentPage + 1,
name: model.searchQuery.isNotEmpty ? model.searchQuery : null,
);
@@ -138,7 +138,7 @@ class GroupController extends ChangeNotifier {
if (!_disposed) notifyListeners();
try {
final raw = await http.get(
'/public/recipient-groups/members?recipientGroupId=$groupId',
'/recipient-groups/members?recipientGroupId=$groupId',
);
final response = _unwrap(raw);
final List<dynamic> content;
@@ -172,7 +172,7 @@ class GroupController extends ChangeNotifier {
model.isLoading = true;
if (!_disposed) notifyListeners();
try {
final raw = await http.post('/public/recipient-groups', req.toJson());
final raw = await http.post('/recipient-groups', req.toJson());
final response = _unwrap(raw);
final group = RecipientGroup.fromJson(response as Map<String, dynamic>);
model.groups = [group, ...model.groups];
@@ -190,11 +190,11 @@ class GroupController extends ChangeNotifier {
Future<void> deleteGroup({
required String groupId,
required String userId,
required String workspaceId,
}) async {
try {
await http.delete(
'/public/recipient-groups/delete/$groupId?userId=$userId',
'/recipient-groups/delete/$groupId?workspaceId=$workspaceId',
);
model.groups.removeWhere((g) => g.id == groupId);
model.selectedGroupIds.remove(groupId);
@@ -226,11 +226,11 @@ class GroupController extends ChangeNotifier {
Future<void> removeMember({
required String groupId,
required String recipientId,
required String userId,
required String workspaceId,
}) async {
try {
await http.delete(
'/public/recipient-groups/$groupId/members/$recipientId?userId=$userId',
'/recipient-groups/$groupId/members/$recipientId?workspaceId=$workspaceId',
);
model.members.removeWhere((m) => m.id == recipientId);
if (!_disposed) notifyListeners();
@@ -241,19 +241,20 @@ class GroupController extends ChangeNotifier {
}
}
Future<void> deleteSelectedGroups({required String userId}) async {
Future<void> deleteSelectedGroups({required String workspaceId}) async {
final idsToDelete = List<String>.from(model.selectedGroupIds);
model.selectMode = false;
model.selectedGroupIds.clear();
if (!_disposed) notifyListeners();
for (final id in idsToDelete) {
await deleteGroup(groupId: id, userId: userId);
await deleteGroup(groupId: id, workspaceId: workspaceId);
}
}
Future<ApiResponse<CreateGroupFromFileResponse>> createGroupFromFile({
required String groupName,
required String workspaceId,
required String userId,
String? description,
required String currency,
@@ -266,6 +267,7 @@ class GroupController extends ChangeNotifier {
try {
final fields = <String, String>{
'groupName': groupName,
'workspaceId': workspaceId,
'userId': userId,
'currency': currency,
};
@@ -274,7 +276,7 @@ class GroupController extends ChangeNotifier {
}
final raw = await http.multipartPost(
'/public/recipient-groups/create-from-file',
'/recipient-groups/create-from-file',
fields,
'file',
fileBytes,