use tag instead of UpdatedTagModel cuz no need for updatedmodel anymore&&key should be spaces with S

This commit is contained in:
raf-dev1
2025-06-10 15:06:31 +03:00
parent e22bab00d9
commit 0d5734a236

View File

@ -4,22 +4,27 @@ import 'package:syncrow_web/pages/spaces_management/all_spaces/model/community_m
import 'package:syncrow_web/pages/spaces_management/all_spaces/model/create_subspace_model.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/create_subspace_model.dart';
import 'package:syncrow_web/pages/spaces_management/all_spaces/model/space_model.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/space_model.dart';
import 'package:syncrow_web/pages/spaces_management/all_spaces/model/space_response_model.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/space_response_model.dart';
import 'package:syncrow_web/pages/spaces_management/all_spaces/model/tag.dart';
import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart';
import 'package:syncrow_web/pages/spaces_management/space_model/models/tag_body_model.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/tag_body_model.dart';
import 'package:syncrow_web/pages/spaces_management/space_model/models/tag_update_model.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/tag_update_model.dart';
import 'package:syncrow_web/services/api/http_service.dart'; import 'package:syncrow_web/services/api/http_service.dart';
import 'package:syncrow_web/utils/constants/api_const.dart'; import 'package:syncrow_web/utils/constants/api_const.dart';
import '../pages/spaces_management/all_spaces/model/subspace_model.dart';
class CommunitySpaceManagementApi { class CommunitySpaceManagementApi {
// Community Management APIs // Community Management APIs
Future<List<CommunityModel>> fetchCommunities(String projectId, {int page = 1}) async { Future<List<CommunityModel>> fetchCommunities(String projectId,
{int page = 1}) async {
try { try {
List<CommunityModel> allCommunities = []; List<CommunityModel> allCommunities = [];
bool hasNext = true; bool hasNext = true;
while (hasNext) { while (hasNext) {
await HTTPService().get( await HTTPService().get(
path: ApiEndpoints.getCommunityList.replaceAll('{projectId}', projectId), path: ApiEndpoints.getCommunityList
.replaceAll('{projectId}', projectId),
queryParameters: { queryParameters: {
'page': page, 'page': page,
}, },
@ -55,8 +60,14 @@ class CommunitySpaceManagementApi {
try { try {
bool hasNext = false; bool hasNext = false;
await HTTPService().get( await HTTPService().get(
path: ApiEndpoints.getCommunityList.replaceAll('{projectId}', projectId), path:
queryParameters: {'page': page, 'includeSpaces': true, 'size': 25, 'search': search}, ApiEndpoints.getCommunityList.replaceAll('{projectId}', projectId),
queryParameters: {
'page': page,
'includeSpaces': true,
'size': 25,
'search': search
},
expectedResponseModel: (json) { expectedResponseModel: (json) {
try { try {
List<dynamic> jsonData = json['data'] ?? []; List<dynamic> jsonData = json['data'] ?? [];
@ -68,7 +79,10 @@ class CommunitySpaceManagementApi {
page = currentPage + 1; page = currentPage + 1;
paginationModel = PaginationModel( paginationModel = PaginationModel(
pageNum: page, hasNext: hasNext, size: 25, communities: communityList); pageNum: page,
hasNext: hasNext,
size: 25,
communities: communityList);
return paginationModel; return paginationModel;
} catch (_) { } catch (_) {
hasNext = false; hasNext = false;
@ -83,7 +97,8 @@ class CommunitySpaceManagementApi {
Future<CommunityModel?> getCommunityById(String communityId) async { Future<CommunityModel?> getCommunityById(String communityId) async {
try { try {
final response = await HTTPService().get( final response = await HTTPService().get(
path: ApiEndpoints.getCommunityById.replaceAll('{communityId}', communityId), path: ApiEndpoints.getCommunityById
.replaceAll('{communityId}', communityId),
expectedResponseModel: (json) { expectedResponseModel: (json) {
return CommunityModel.fromJson(json['data']); return CommunityModel.fromJson(json['data']);
}, },
@ -95,7 +110,8 @@ class CommunitySpaceManagementApi {
} }
} }
Future<CommunityModel?> createCommunity(String name, String description, String projectId) async { Future<CommunityModel?> createCommunity(
String name, String description, String projectId) async {
try { try {
final response = await HTTPService().post( final response = await HTTPService().post(
path: ApiEndpoints.createCommunity.replaceAll('{projectId}', projectId), path: ApiEndpoints.createCommunity.replaceAll('{projectId}', projectId),
@ -114,7 +130,8 @@ class CommunitySpaceManagementApi {
} }
} }
Future<bool> updateCommunity(String communityId, String name, String projectId) async { Future<bool> updateCommunity(
String communityId, String name, String projectId) async {
try { try {
final response = await HTTPService().put( final response = await HTTPService().put(
path: ApiEndpoints.updateCommunity path: ApiEndpoints.updateCommunity
@ -151,7 +168,8 @@ class CommunitySpaceManagementApi {
} }
} }
Future<SpacesResponse> fetchSpaces(String communityId, String projectId) async { Future<SpacesResponse> fetchSpaces(
String communityId, String projectId) async {
try { try {
final response = await HTTPService().get( final response = await HTTPService().get(
path: ApiEndpoints.listSpaces path: ApiEndpoints.listSpaces
@ -177,7 +195,8 @@ class CommunitySpaceManagementApi {
} }
} }
Future<SpaceModel?> getSpace(String communityId, String spaceId, String projectId) async { Future<SpaceModel?> getSpace(
String communityId, String spaceId, String projectId) async {
try { try {
final response = await HTTPService().get( final response = await HTTPService().get(
path: ApiEndpoints.getSpace path: ApiEndpoints.getSpace
@ -199,7 +218,6 @@ class CommunitySpaceManagementApi {
{required String communityId, {required String communityId,
required String name, required String name,
String? parentId, String? parentId,
bool isPrivate = false, bool isPrivate = false,
required Offset position, required Offset position,
String? spaceModelUuid, String? spaceModelUuid,
@ -213,7 +231,6 @@ class CommunitySpaceManagementApi {
'isPrivate': isPrivate, 'isPrivate': isPrivate,
'x': position.dx, 'x': position.dx,
'y': position.dy, 'y': position.dy,
'icon': icon, 'icon': icon,
}; };
if (parentId != null) { if (parentId != null) {
@ -248,11 +265,10 @@ class CommunitySpaceManagementApi {
required String name, required String name,
String? parentId, String? parentId,
String? icon, String? icon,
bool isPrivate = false, bool isPrivate = false,
required Offset position, required Offset position,
List<TagModelUpdate>? tags, List<Tag>? tags,
List<UpdateSubspaceTemplateModel>? subspaces, List<SubspaceModel>? subspaces,
String? spaceModelUuid, String? spaceModelUuid,
required String projectId}) async { required String projectId}) async {
try { try {
@ -261,9 +277,8 @@ class CommunitySpaceManagementApi {
'isPrivate': isPrivate, 'isPrivate': isPrivate,
'x': position.dx, 'x': position.dx,
'y': position.dy, 'y': position.dy,
'icon': icon, 'icon': icon,
'subspace': subspaces, 'subspaces': subspaces,
'tags': tags, 'tags': tags,
'spaceModelUuid': spaceModelUuid, 'spaceModelUuid': spaceModelUuid,
}; };
@ -289,7 +304,8 @@ class CommunitySpaceManagementApi {
} }
} }
Future<bool> deleteSpace(String communityId, String spaceId, String projectId) async { Future<bool> deleteSpace(
String communityId, String spaceId, String projectId) async {
try { try {
final response = await HTTPService().delete( final response = await HTTPService().delete(
path: ApiEndpoints.deleteSpace path: ApiEndpoints.deleteSpace
@ -307,15 +323,17 @@ class CommunitySpaceManagementApi {
} }
} }
Future<List<SpaceModel>> getSpaceHierarchy(String communityId, String projectId) async { Future<List<SpaceModel>> getSpaceHierarchy(
String communityId, String projectId) async {
try { try {
final response = await HTTPService().get( final response = await HTTPService().get(
path: ApiEndpoints.getSpaceHierarchy path: ApiEndpoints.getSpaceHierarchy
.replaceAll('{communityId}', communityId) .replaceAll('{communityId}', communityId)
.replaceAll('{projectId}', projectId), .replaceAll('{projectId}', projectId),
expectedResponseModel: (json) { expectedResponseModel: (json) {
final spaceModels = final spaceModels = (json['data'] as List)
(json['data'] as List).map((spaceJson) => SpaceModel.fromJson(spaceJson)).toList(); .map((spaceJson) => SpaceModel.fromJson(spaceJson))
.toList();
return spaceModels; return spaceModels;
}, },
@ -327,15 +345,17 @@ class CommunitySpaceManagementApi {
} }
} }
Future<List<SpaceModel>> getSpaceOnlyWithDevices({String? communityId, String? projectId}) async { Future<List<SpaceModel>> getSpaceOnlyWithDevices(
{String? communityId, String? projectId}) async {
try { try {
final response = await HTTPService().get( final response = await HTTPService().get(
path: ApiEndpoints.spaceOnlyWithDevices path: ApiEndpoints.spaceOnlyWithDevices
.replaceAll('{communityId}', communityId!) .replaceAll('{communityId}', communityId!)
.replaceAll('{projectId}', projectId!), .replaceAll('{projectId}', projectId!),
expectedResponseModel: (json) { expectedResponseModel: (json) {
final spaceModels = final spaceModels = (json['data'] as List)
(json['data'] as List).map((spaceJson) => SpaceModel.fromJson(spaceJson)).toList(); .map((spaceJson) => SpaceModel.fromJson(spaceJson))
.toList();
return spaceModels; return spaceModels;
}, },
); );