removed try catch

This commit is contained in:
hannathkadher
2025-01-13 12:12:22 +04:00
parent 408c40aa60
commit acbb6ca7c0
2 changed files with 64 additions and 74 deletions

View File

@ -76,19 +76,24 @@ class SpaceManagementBloc
Future<List<SpaceTemplateModel>> fetchSpaceModels( Future<List<SpaceTemplateModel>> fetchSpaceModels(
SpaceManagementState previousState) async { SpaceManagementState previousState) async {
List<SpaceTemplateModel> prevSpaceModels = []; try {
List<SpaceTemplateModel> prevSpaceModels = [];
if (previousState is SpaceManagementLoaded || previousState is BlankState) { if (previousState is SpaceManagementLoaded ||
prevSpaceModels = List<SpaceTemplateModel>.from( previousState is BlankState) {
(previousState as dynamic).spaceModels ?? [], prevSpaceModels = List<SpaceTemplateModel>.from(
); (previousState as dynamic).spaceModels ?? [],
);
}
if (prevSpaceModels.isEmpty) {
prevSpaceModels = await _spaceModelApi.listSpaceModels(page: 1);
}
return prevSpaceModels;
} catch (e) {
return [];
} }
if (prevSpaceModels.isEmpty) {
prevSpaceModels = await _spaceModelApi.listSpaceModels(page: 1);
}
return prevSpaceModels;
} }
void _onloadProducts() async { void _onloadProducts() async {
@ -184,6 +189,7 @@ class SpaceManagementBloc
LoadCommunityAndSpacesEvent event, LoadCommunityAndSpacesEvent event,
Emitter<SpaceManagementState> emit, Emitter<SpaceManagementState> emit,
) async { ) async {
var prevState = state;
emit(SpaceManagementLoading()); emit(SpaceManagementLoading());
try { try {
_onloadProducts(); _onloadProducts();
@ -205,12 +211,11 @@ class SpaceManagementBloc
}).toList(), }).toList(),
); );
List<SpaceTemplateModel> spaceModels = final prevSpaceModels = await fetchSpaceModels(prevState);
await _spaceModelApi.listSpaceModels(page: 1);
emit(SpaceManagementLoaded( emit(SpaceManagementLoaded(
communities: updatedCommunities, communities: updatedCommunities,
products: _cachedProducts ?? [], products: _cachedProducts ?? [],
spaceModels: spaceModels)); spaceModels: prevSpaceModels));
} catch (e) { } catch (e) {
emit(SpaceManagementError('Error loading communities and spaces: $e')); emit(SpaceManagementError('Error loading communities and spaces: $e'));
} }
@ -487,6 +492,8 @@ class SpaceManagementBloc
SpaceModelLoadEvent event, Emitter<SpaceManagementState> emit) async { SpaceModelLoadEvent event, Emitter<SpaceManagementState> emit) async {
emit(SpaceManagementLoading()); emit(SpaceManagementLoading());
try { try {
var prevState = state;
List<CommunityModel> communities = await _api.fetchCommunities(); List<CommunityModel> communities = await _api.fetchCommunities();
List<CommunityModel> updatedCommunities = await Future.wait( List<CommunityModel> updatedCommunities = await Future.wait(
@ -505,12 +512,12 @@ class SpaceManagementBloc
}).toList(), }).toList(),
); );
List<SpaceTemplateModel> spaceModels = var prevSpaceModels = await fetchSpaceModels(prevState);
await _spaceModelApi.listSpaceModels(page: 1);
emit(SpaceModelLoaded( emit(SpaceModelLoaded(
communities: updatedCommunities, communities: updatedCommunities,
products: _cachedProducts ?? [], products: _cachedProducts ?? [],
spaceModels: spaceModels)); spaceModels: prevSpaceModels));
} catch (e) { } catch (e) {
emit(SpaceManagementError('Error loading communities and spaces: $e')); emit(SpaceManagementError('Error loading communities and spaces: $e'));
} }

View File

@ -7,71 +7,54 @@ import 'package:syncrow_web/utils/constants/temp_const.dart';
class SpaceModelManagementApi { class SpaceModelManagementApi {
Future<List<SpaceTemplateModel>> listSpaceModels({int page = 1}) async { Future<List<SpaceTemplateModel>> listSpaceModels({int page = 1}) async {
try { List<SpaceTemplateModel> spaceModels = [];
List<SpaceTemplateModel> spaceModels = []; bool hasNext = true;
bool hasNext = true; while (hasNext) {
while (hasNext) { await HTTPService().get(
await HTTPService().get( path: ApiEndpoints.listSpaceModels
path: ApiEndpoints.listSpaceModels .replaceAll('{projectId}', TempConst.projectId),
.replaceAll('{projectId}', TempConst.projectId), queryParameters: {'page': page},
queryParameters: {'page': page}, expectedResponseModel: (json) {
expectedResponseModel: (json) { List<dynamic> jsonData = json['data'];
List<dynamic> jsonData = json['data']; hasNext = json['hasNext'] ?? false;
hasNext = json['hasNext'] ?? false; int currentPage = json['page'] ?? 1;
int currentPage = json['page'] ?? 1; List<SpaceTemplateModel> spaceModelList = jsonData.map((jsonItem) {
List<SpaceTemplateModel> spaceModelList = jsonData.map((jsonItem) { return SpaceTemplateModel.fromJson(jsonItem);
return SpaceTemplateModel.fromJson(jsonItem); }).toList();
}).toList();
spaceModels.addAll(spaceModelList); spaceModels.addAll(spaceModelList);
page = currentPage + 1; page = currentPage + 1;
return spaceModelList; return spaceModelList;
}, },
); );
}
return spaceModels;
} catch (e) {
debugPrint('Error fetching space models: $e');
return [];
} }
return spaceModels;
} }
Future<SpaceTemplateModel?> createSpaceModel( Future<SpaceTemplateModel?> createSpaceModel(
CreateSpaceTemplateBodyModel spaceModel) async { CreateSpaceTemplateBodyModel spaceModel) async {
try { final response = await HTTPService().post(
final response = await HTTPService().post( path: ApiEndpoints.createSpaceModel
path: ApiEndpoints.createSpaceModel .replaceAll('{projectId}', TempConst.projectId),
.replaceAll('{projectId}', TempConst.projectId), showServerMessage: true,
showServerMessage: true, body: spaceModel.toJson(),
body: spaceModel.toJson(), expectedResponseModel: (json) {
expectedResponseModel: (json) { return SpaceTemplateModel.fromJson(json['data']);
return SpaceTemplateModel.fromJson(json['data']); },
}, );
); return response;
return response;
} catch (e) {
debugPrint('Error creating space model: $e');
return null;
}
} }
Future<SpaceTemplateModel?> getSpaceModel(String spaceModelUuid) async { Future<SpaceTemplateModel?> getSpaceModel(String spaceModelUuid) async {
try { final response = await HTTPService().get(
final response = await HTTPService().get( path: ApiEndpoints.getSpaceModel
path: ApiEndpoints.getSpaceModel .replaceAll('{projectId}', TempConst.projectId)
.replaceAll('{projectId}', TempConst.projectId) .replaceAll('{spaceModelUuid}', spaceModelUuid),
.replaceAll('{spaceModelUuid}', spaceModelUuid), showServerMessage: true,
showServerMessage: true, expectedResponseModel: (json) {
expectedResponseModel: (json) { return SpaceTemplateModel.fromJson(json['data']);
debugPrint('Response JSON: $json'); },
);
return SpaceTemplateModel.fromJson(json['data']); return response;
},
);
return response;
} catch (e) {
debugPrint('Error getting space model: $e');
return null;
}
} }
} }