mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-11-27 21:34:55 +00:00
made communities paginatable.
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:syncrow_web/pages/common/bloc/project_manager.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/models/community_model.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/models/communities_pagination_model.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/params/load_communities_param.dart';
|
||||
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/services/communities_service.dart';
|
||||
import 'package:syncrow_web/services/api/api_exception.dart';
|
||||
@ -15,28 +15,25 @@ class RemoteCommunitiesService implements CommunitiesService {
|
||||
static const _defaultErrorMessage = 'Failed to load communities';
|
||||
|
||||
@override
|
||||
Future<List<CommunityModel>> getCommunity(LoadCommunitiesParam param) async {
|
||||
Future<CommunitiesPaginationModel> getCommunity(LoadCommunitiesParam param) async {
|
||||
final projectUuid = await ProjectManager.getProjectUUID();
|
||||
if (projectUuid == null) throw APIException('Project UUID is not set');
|
||||
|
||||
try {
|
||||
final allCommunities = <CommunityModel>[];
|
||||
await _httpService.get(
|
||||
final response = await _httpService.get(
|
||||
path: await _makeUrl(),
|
||||
queryParameters: {
|
||||
'page': param.page,
|
||||
'size': param.size,
|
||||
'includeSpaces': param.includeSpaces,
|
||||
if (param.search.isNotEmpty) 'search': param.search,
|
||||
},
|
||||
expectedResponseModel: (json) {
|
||||
final response = json as Map<String, dynamic>;
|
||||
final jsonData = response['data'] as List<dynamic>? ?? [];
|
||||
return jsonData
|
||||
.map(
|
||||
(jsonItem) => CommunityModel.fromJson(
|
||||
jsonItem as Map<String, dynamic>,
|
||||
),
|
||||
)
|
||||
.toList();
|
||||
return CommunitiesPaginationModel.fromJson(json as Map<String, dynamic>);
|
||||
},
|
||||
);
|
||||
|
||||
return allCommunities;
|
||||
return response;
|
||||
} on DioException catch (e) {
|
||||
final message = e.response?.data as Map<String, dynamic>?;
|
||||
final error = message?['error'] as Map<String, dynamic>?;
|
||||
|
||||
Reference in New Issue
Block a user