From eae6293b4a95871828807e1b8210cffa5c015606 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 10 Dec 2025 17:40:04 -0800 Subject: [PATCH] fix(mobile): fix authorization API response parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The API returns {"success": true, "data": [...]} format but the code was checking if response.data is List directly. Now properly extracts the data field before parsing. ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../lib/core/services/authorization_service.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/mobile-app/lib/core/services/authorization_service.dart b/frontend/mobile-app/lib/core/services/authorization_service.dart index f8d89699..b40f77ac 100644 --- a/frontend/mobile-app/lib/core/services/authorization_service.dart +++ b/frontend/mobile-app/lib/core/services/authorization_service.dart @@ -227,9 +227,18 @@ class AuthorizationService { final response = await _apiClient.get(ApiEndpoints.myAuthorizations); if (response.statusCode == 200) { - final data = response.data; - if (data is List) { - final authorizations = data + final responseData = response.data; + // API ่ฟ”ๅ›žๆ ผๅผ: {"success": true, "data": [...]} + // ้œ€่ฆๅ…ˆๆๅ– data ๅญ—ๆฎต + List? dataList; + if (responseData is Map) { + dataList = responseData['data'] as List?; + } else if (responseData is List) { + dataList = responseData; + } + + if (dataList != null) { + final authorizations = dataList .map((e) => AuthorizationResponse.fromJson(e as Map)) .toList(); debugPrint('ๆŽˆๆƒๅˆ—่กจ่Žทๅ–ๆˆๅŠŸ: ${authorizations.length} ไธชๆŽˆๆƒ');