mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-15 17:47:28 +00:00

Added a new StatusModel class to represent device statuses and implemented functionality to fetch and update device statuses in the DevicesCubit and DeviceModel classes. Also updated UI components to display device status information.
49 lines
1.5 KiB
Dart
49 lines
1.5 KiB
Dart
import 'package:syncrow_app/features/devices/model/device_category_model.dart';
|
|
import 'package:syncrow_app/features/devices/model/device_control_model.dart';
|
|
import 'package:syncrow_app/services/api/api_links_endpoints.dart';
|
|
import 'package:syncrow_app/services/api/http_service.dart';
|
|
|
|
class DevicesAPI {
|
|
static final HTTPService _httpService = HTTPService();
|
|
|
|
static Future<Map<String, dynamic>> controlDevice(
|
|
DeviceControlModel controlModel) async {
|
|
final response = await _httpService.post(
|
|
path: ApiEndpoints.control,
|
|
body: controlModel.toJson(),
|
|
showServerMessage: false,
|
|
expectedResponseModel: (json) {
|
|
return json;
|
|
},
|
|
);
|
|
return response;
|
|
}
|
|
|
|
static Future<List<DevicesCategoryModel>> fetchGroups(int spaceId) async {
|
|
Map<String, dynamic> params = {
|
|
"homeId": spaceId,
|
|
"pageSize": 100,
|
|
"pageNo": 1
|
|
};
|
|
final response = await _httpService.get(
|
|
path: ApiEndpoints.groups,
|
|
queryParameters: params,
|
|
showServerMessage: false,
|
|
expectedResponseModel: (json) =>
|
|
DevicesCategoryModel.fromJsonList(json['groups']),
|
|
);
|
|
return response;
|
|
}
|
|
|
|
static Future<Map<String, dynamic>> getDeviceStatus(String deviceId) async {
|
|
final response = await _httpService.get(
|
|
path: '${ApiEndpoints.deviceStatus}/$deviceId/functions/status',
|
|
showServerMessage: false,
|
|
expectedResponseModel: (json) {
|
|
return json;
|
|
},
|
|
);
|
|
return response;
|
|
}
|
|
}
|