mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
78 lines
2.6 KiB
Dart
78 lines
2.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:syncrow_web/pages/spaces_management/space_model/models/create_space_template_body_model.dart';
|
|
import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.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/temp_const.dart';
|
|
|
|
class SpaceModelManagementApi {
|
|
Future<List<SpaceTemplateModel>> listSpaceModels({int page = 1}) async {
|
|
try {
|
|
List<SpaceTemplateModel> spaceModels = [];
|
|
bool hasNext = true;
|
|
while (hasNext) {
|
|
await HTTPService().get(
|
|
path: ApiEndpoints.listSpaceModels
|
|
.replaceAll('{projectId}', TempConst.projectId),
|
|
queryParameters: {'page': page},
|
|
expectedResponseModel: (json) {
|
|
List<dynamic> jsonData = json['data'];
|
|
hasNext = json['hasNext'] ?? false;
|
|
int currentPage = json['page'] ?? 1;
|
|
List<SpaceTemplateModel> 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 [];
|
|
}
|
|
}
|
|
|
|
Future<SpaceTemplateModel?> 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;
|
|
}
|
|
}
|
|
|
|
Future<SpaceTemplateModel?> 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;
|
|
}
|
|
}
|
|
}
|