Improved UniqueSubspacesDecorator implementation to improve handling of duplicate subspace names.

This commit is contained in:
Faris Armoush
2025-07-15 14:37:16 +03:00
parent e740652507
commit 5a3cf93748

View File

@ -12,13 +12,17 @@ class UniqueSubspacesDecorator implements SpaceDetailsService {
final response = await _decoratee.getSpaceDetails(param); final response = await _decoratee.getSpaceDetails(param);
final uniqueSubspaces = <String, Subspace>{}; final uniqueSubspaces = <String, Subspace>{};
final duplicateNames = <String>{};
for (final subspace in response.subspaces) { for (final subspace in response.subspaces) {
final normalizedName = subspace.name.trim().toLowerCase(); final normalizedName = subspace.name.trim().toLowerCase();
if (!uniqueSubspaces.containsKey(normalizedName)) { if (uniqueSubspaces.containsKey(normalizedName)) {
duplicateNames.add(normalizedName);
} else {
uniqueSubspaces[normalizedName] = subspace; uniqueSubspaces[normalizedName] = subspace;
} }
} }
duplicateNames.forEach(uniqueSubspaces.remove);
return response.copyWith( return response.copyWith(
subspaces: uniqueSubspaces.values.toList(), subspaces: uniqueSubspaces.values.toList(),