fix: auto repair bugs #51
This commit is contained in:
parent
36513d14d9
commit
eb494a1b95
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user