From acbb6ca7c09ae14c60dc634ad4d86b76fbd7df5e Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Mon, 13 Jan 2025 12:12:22 +0400 Subject: [PATCH] removed try catch --- .../bloc/space_management_bloc.dart | 41 ++++---- lib/services/space_model_mang_api.dart | 97 ++++++++----------- 2 files changed, 64 insertions(+), 74 deletions(-) diff --git a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart index 6458bdf6..20f642fd 100644 --- a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart +++ b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart @@ -76,19 +76,24 @@ class SpaceManagementBloc Future> fetchSpaceModels( SpaceManagementState previousState) async { - List prevSpaceModels = []; + try { + List prevSpaceModels = []; - if (previousState is SpaceManagementLoaded || previousState is BlankState) { - prevSpaceModels = List.from( - (previousState as dynamic).spaceModels ?? [], - ); + if (previousState is SpaceManagementLoaded || + previousState is BlankState) { + prevSpaceModels = List.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 { @@ -184,6 +189,7 @@ class SpaceManagementBloc LoadCommunityAndSpacesEvent event, Emitter emit, ) async { + var prevState = state; emit(SpaceManagementLoading()); try { _onloadProducts(); @@ -205,12 +211,11 @@ class SpaceManagementBloc }).toList(), ); - List spaceModels = - await _spaceModelApi.listSpaceModels(page: 1); + final prevSpaceModels = await fetchSpaceModels(prevState); emit(SpaceManagementLoaded( communities: updatedCommunities, products: _cachedProducts ?? [], - spaceModels: spaceModels)); + spaceModels: prevSpaceModels)); } catch (e) { emit(SpaceManagementError('Error loading communities and spaces: $e')); } @@ -487,6 +492,8 @@ class SpaceManagementBloc SpaceModelLoadEvent event, Emitter emit) async { emit(SpaceManagementLoading()); try { + var prevState = state; + List communities = await _api.fetchCommunities(); List updatedCommunities = await Future.wait( @@ -505,12 +512,12 @@ class SpaceManagementBloc }).toList(), ); - List spaceModels = - await _spaceModelApi.listSpaceModels(page: 1); + var prevSpaceModels = await fetchSpaceModels(prevState); + emit(SpaceModelLoaded( communities: updatedCommunities, products: _cachedProducts ?? [], - spaceModels: spaceModels)); + spaceModels: prevSpaceModels)); } catch (e) { emit(SpaceManagementError('Error loading communities and spaces: $e')); } diff --git a/lib/services/space_model_mang_api.dart b/lib/services/space_model_mang_api.dart index 19752aea..b13d62ad 100644 --- a/lib/services/space_model_mang_api.dart +++ b/lib/services/space_model_mang_api.dart @@ -7,71 +7,54 @@ import 'package:syncrow_web/utils/constants/temp_const.dart'; class SpaceModelManagementApi { Future> listSpaceModels({int page = 1}) async { - try { - List spaceModels = []; - bool hasNext = true; - while (hasNext) { - await HTTPService().get( - path: ApiEndpoints.listSpaceModels - .replaceAll('{projectId}', TempConst.projectId), - queryParameters: {'page': page}, - expectedResponseModel: (json) { - List jsonData = json['data']; - hasNext = json['hasNext'] ?? false; - int currentPage = json['page'] ?? 1; - List spaceModelList = jsonData.map((jsonItem) { - return SpaceTemplateModel.fromJson(jsonItem); - }).toList(); + List spaceModels = []; + bool hasNext = true; + while (hasNext) { + await HTTPService().get( + path: ApiEndpoints.listSpaceModels + .replaceAll('{projectId}', TempConst.projectId), + queryParameters: {'page': page}, + expectedResponseModel: (json) { + List jsonData = json['data']; + hasNext = json['hasNext'] ?? false; + int currentPage = json['page'] ?? 1; + List spaceModelList = jsonData.map((jsonItem) { + return SpaceTemplateModel.fromJson(jsonItem); + }).toList(); - spaceModels.addAll(spaceModelList); - page = currentPage + 1; - return spaceModelList; - }, - ); - } - return spaceModels; - } catch (e) { - debugPrint('Error fetching space models: $e'); - return []; + spaceModels.addAll(spaceModelList); + page = currentPage + 1; + return spaceModelList; + }, + ); } + return spaceModels; } Future createSpaceModel( CreateSpaceTemplateBodyModel spaceModel) async { - try { - final response = await HTTPService().post( - path: ApiEndpoints.createSpaceModel - .replaceAll('{projectId}', TempConst.projectId), - showServerMessage: true, - body: spaceModel.toJson(), - expectedResponseModel: (json) { - return SpaceTemplateModel.fromJson(json['data']); - }, - ); - return response; - } catch (e) { - debugPrint('Error creating space model: $e'); - return null; - } + final response = await HTTPService().post( + path: ApiEndpoints.createSpaceModel + .replaceAll('{projectId}', TempConst.projectId), + showServerMessage: true, + body: spaceModel.toJson(), + expectedResponseModel: (json) { + return SpaceTemplateModel.fromJson(json['data']); + }, + ); + return response; } Future getSpaceModel(String spaceModelUuid) async { - try { - final response = await HTTPService().get( - path: ApiEndpoints.getSpaceModel - .replaceAll('{projectId}', TempConst.projectId) - .replaceAll('{spaceModelUuid}', spaceModelUuid), - showServerMessage: true, - expectedResponseModel: (json) { - debugPrint('Response JSON: $json'); - - return SpaceTemplateModel.fromJson(json['data']); - }, - ); - return response; - } catch (e) { - debugPrint('Error getting space model: $e'); - return null; - } + final response = await HTTPService().get( + path: ApiEndpoints.getSpaceModel + .replaceAll('{projectId}', TempConst.projectId) + .replaceAll('{spaceModelUuid}', spaceModelUuid), + showServerMessage: true, + expectedResponseModel: (json) { + return SpaceTemplateModel.fromJson(json['data']); + }, + ); + return response; } }