From eb494a1b953f6b8c2a56fc51bb0d8627387503cb Mon Sep 17 00:00:00 2001 From: repair-agent Date: Fri, 27 Feb 2026 16:45:38 +0800 Subject: [PATCH] fix: auto repair bugs #51 --- .../data/datasources/device_remote_data_source.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/airhub_app/lib/features/device/data/datasources/device_remote_data_source.dart b/airhub_app/lib/features/device/data/datasources/device_remote_data_source.dart index d5b99a7..3345d03 100644 --- a/airhub_app/lib/features/device/data/datasources/device_remote_data_source.dart +++ b/airhub_app/lib/features/device/data/datasources/device_remote_data_source.dart @@ -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 _normalizeSpiritField(Map json) { + final spirit = json['spirit']; + if (spirit is Map) { + json['spirit'] = spirit['id']; + } + return json; + } + @override Future> queryByMac(String mac) async { final data = await _apiClient.get( @@ -65,6 +74,10 @@ class DeviceRemoteDataSourceImpl implements DeviceRemoteDataSource { final body = {'sn': sn}; if (spiritId != null) body['spirit_id'] = spiritId; final data = await _apiClient.post('/devices/bind/', data: body); + if (data is Map) { + _normalizeSpiritField(data); + return data['id'] as int; + } return data as int; }