From acefe7b35510d9db30fc5c6c9f1aa5899beef61e Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Tue, 15 Jul 2025 11:09:04 +0300 Subject: [PATCH] Refactor RemoteDeleteSpaceService to use a private HTTPService instance and update URL construction with ApiEndpoints for improved maintainability. Update DeleteSpaceDialog to reflect changes in service initialization. --- .../data/remote_delete_space_service.dart | 15 +++++++++------ .../presentation/widgets/delete_space_dialog.dart | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/pages/space_management_v2/modules/delete_space/data/remote_delete_space_service.dart b/lib/pages/space_management_v2/modules/delete_space/data/remote_delete_space_service.dart index 74724644..5320f625 100644 --- a/lib/pages/space_management_v2/modules/delete_space/data/remote_delete_space_service.dart +++ b/lib/pages/space_management_v2/modules/delete_space/data/remote_delete_space_service.dart @@ -4,18 +4,17 @@ import 'package:syncrow_web/pages/space_management_v2/modules/delete_space/domai import 'package:syncrow_web/pages/space_management_v2/modules/delete_space/domain/services/delete_space_service.dart'; import 'package:syncrow_web/services/api/api_exception.dart'; import 'package:syncrow_web/services/api/http_service.dart'; +import 'package:syncrow_web/utils/constants/api_const.dart'; final class RemoteDeleteSpaceService implements DeleteSpaceService { - RemoteDeleteSpaceService({ - required this.httpService, - }); + const RemoteDeleteSpaceService(this._httpService); - final HTTPService httpService; + final HTTPService _httpService; @override Future delete(DeleteSpaceParam param) async { try { - await httpService.delete( + await _httpService.delete( path: await _makeUrl(param), expectedResponseModel: (json) { final response = json as Map; @@ -56,6 +55,10 @@ final class RemoteDeleteSpaceService implements DeleteSpaceService { if (param.spaceUuid.isEmpty) { throw APIException('Space UUID is not set'); } - return '/projects/$projectUuid/communities/${param.communityUuid}/spaces/${param.spaceUuid}'; + + return ApiEndpoints.deleteSpace + .replaceAll('{projectId}', projectUuid) + .replaceAll('{communityId}', param.communityUuid) + .replaceAll('{spaceId}', param.spaceUuid); } } diff --git a/lib/pages/space_management_v2/modules/delete_space/presentation/widgets/delete_space_dialog.dart b/lib/pages/space_management_v2/modules/delete_space/presentation/widgets/delete_space_dialog.dart index b8734eee..f2ddf24a 100644 --- a/lib/pages/space_management_v2/modules/delete_space/presentation/widgets/delete_space_dialog.dart +++ b/lib/pages/space_management_v2/modules/delete_space/presentation/widgets/delete_space_dialog.dart @@ -27,7 +27,7 @@ class DeleteSpaceDialog extends StatelessWidget { Widget build(BuildContext context) { return BlocProvider( create: (context) => DeleteSpaceBloc( - RemoteDeleteSpaceService(httpService: HTTPService()), + RemoteDeleteSpaceService(HTTPService()), ), child: Builder( builder: (context) => Dialog(