fix: auto repair bugs #51

This commit is contained in:
repair-agent 2026-02-27 16:45:38 +08:00
parent 36513d14d9
commit eb494a1b95

View File

@ -45,6 +45,15 @@ class DeviceRemoteDataSourceImpl implements DeviceRemoteDataSource {
DeviceRemoteDataSourceImpl(this._apiClient);
/// Normalize spirit field: if API returns a Map (nested object), extract its 'id'.
Map<String, dynamic> _normalizeSpiritField(Map<String, dynamic> json) {
final spirit = json['spirit'];
if (spirit is Map<String, dynamic>) {
json['spirit'] = spirit['id'];
}
return json;
}
@override
Future<Map<String, dynamic>> queryByMac(String mac) async {
final data = await _apiClient.get(
@ -65,6 +74,10 @@ class DeviceRemoteDataSourceImpl implements DeviceRemoteDataSource {
final body = <String, dynamic>{'sn': sn};
if (spiritId != null) body['spirit_id'] = spiritId;
final data = await _apiClient.post('/devices/bind/', data: body);
if (data is Map<String, dynamic>) {
_normalizeSpiritField(data);
return data['id'] as int;
}
return data as int;
}