Compare commits
2 Commits
36513d14d9
...
df50fbb8cd
| Author | SHA1 | Date | |
|---|---|---|---|
| df50fbb8cd | |||
|
|
eb494a1b95 |
@ -45,6 +45,15 @@ class DeviceRemoteDataSourceImpl implements DeviceRemoteDataSource {
|
|||||||
|
|
||||||
DeviceRemoteDataSourceImpl(this._apiClient);
|
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
|
@override
|
||||||
Future<Map<String, dynamic>> queryByMac(String mac) async {
|
Future<Map<String, dynamic>> queryByMac(String mac) async {
|
||||||
final data = await _apiClient.get(
|
final data = await _apiClient.get(
|
||||||
@ -65,6 +74,10 @@ class DeviceRemoteDataSourceImpl implements DeviceRemoteDataSource {
|
|||||||
final body = <String, dynamic>{'sn': sn};
|
final body = <String, dynamic>{'sn': sn};
|
||||||
if (spiritId != null) body['spirit_id'] = spiritId;
|
if (spiritId != null) body['spirit_id'] = spiritId;
|
||||||
final data = await _apiClient.post('/devices/bind/', data: body);
|
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;
|
return data as int;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user