From 32388fb118a0763a3a6d073a1dd48c66c11b46a8 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 4 Dec 2025 12:03:41 +0900 Subject: [PATCH 1/2] =?UTF-8?q?ffix=20:=20=EC=97=AD=EB=9F=89=EC=A7=84?= =?UTF-8?q?=EB=8B=A8=20=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 28797 -> 28847 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 18769 -> 18803 bytes .../assessment/models/quiz_model.dart | 28 ++++++++++++++---- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 2c01edfdbc0501ba803089b494ac7a414f493f72..a5c20e2f46f4ec5c97f6b75d55acc5043e614f47 100644 GIT binary patch delta 535 zcmezSfN}jp#tkMCjORC-N=)Dv2sk5Wx4}^_k^u|~YB%pyzs$^7xl!?l_(p>TESnuY zN|;%m+Zwq{mi5sCF`Os+`$$b@^$`Ja{9vN~oBe$}lHk@-q5|Gw21`?V;tO&vaR>IG-9!1YLxp2VNUu#qDLx>Lj2B0JZ3&-OL zKnhKV=SEXU$vFuHCic^WY(G^tBk8DTU|`kM$JFxWLJP-*9}K>tn-yjpJJlZn(IWo< zs1gXydjJVEOD-PrQr0i!&{M8_Iq%H2d-otZ>=i)j8CaT9fh3v^@w0vR>YF_G&b;tp ziRz)}838C-#24+t)Y99-{<}Hk>C5}yqHkP!WKs#yp}qlR2ZQF~4on?SG;i}fp7!sd z>){!G?;B0#L3BVui(%_V#)iqF1sO)DA$cJwG=X1T{0wRp0uj~kkABTMGzK9d=wFVW!6TWcVzyBd&E3yt2-tKRhI$lP6`aLs#*1d;oWUsqC zGGT}4$SDA-tY=_gRoQ^4<=T?{+Lz?D`TVOCn=5_&cOYp2D!$5yspGS(VBSuVn$>ST z7ytMwy=w+UM~MSaCD0CzDL@j03_Jt>L&0QIiPMZPH!A)R-)LYUzS+@3fN`?E GrxE}Y0~x&l delta 30 mcmex7iSgnj#tkMCj2x4FB~CM5+^G0Ne4~Mf_-02B0Y(724GQxB diff --git a/lib/features/assessment/models/quiz_model.dart b/lib/features/assessment/models/quiz_model.dart index 4f0f10a..1431656 100644 --- a/lib/features/assessment/models/quiz_model.dart +++ b/lib/features/assessment/models/quiz_model.dart @@ -36,17 +36,31 @@ class Quiz { +// [quiz_model.dart] 파일 내의 Quiz 클래스 수정 factory Quiz.fromJson(Map json) { - // API의 options는 Map이지만, 값은 String입니다. - final Map rawOptions = json['options'] ?? {}; - final Map parsedOptions = rawOptions.map( - (key, value) => MapEntry(key, value as String), - ); + // 1. API 응답의 options는 List (옵션 객체들의 배열)입니다. + final List rawOptions = json['options'] ?? []; + final Map parsedOptions = {}; + + // 2. List를 순회하며 Map 형태로 변환 + // 옵션 ID(int)를 키(String)로, 텍스트(String)를 값으로 사용합니다. + for (var option in rawOptions) { + if (option is Map) { + // 키로 사용할 옵션 ID를 문자열로 변환합니다. (예: 4001 -> "4001") + final String key = (option['optionId'] as int?)?.toString() ?? 'unknown'; + final String text = option['text'] as String? ?? 'No Text'; + + // 키가 'unknown'이 아니면서 텍스트가 있을 경우에만 추가합니다. + if (key != 'unknown') { + parsedOptions[key] = text; + } + } + } return Quiz( id: json['questionId'] as int? ?? 0, question: json['questionText'] as String? ?? 'No Question', - options: parsedOptions, + options: parsedOptions, // 👈 수정된 Map 사용 // ⬇ 새 API 명세에 없는 필드들은 기본값으로 채웁니다. answer: '', categoryId: 0, @@ -54,4 +68,6 @@ class Quiz { point: 0, ); } + + } \ No newline at end of file From 3b11b21449c8c8c7a1a9cc5e1a032208d57b1682 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 4 Dec 2025 12:04:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?ffix=20:=20=C3=AC=C2=AD=EB=9F=89=EC=A7=84?= =?UTF-8?q?=EB=8B=A8=20=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/assessment/models/quiz_model.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/features/assessment/models/quiz_model.dart b/lib/features/assessment/models/quiz_model.dart index 1431656..ba83ed8 100644 --- a/lib/features/assessment/models/quiz_model.dart +++ b/lib/features/assessment/models/quiz_model.dart @@ -66,6 +66,7 @@ class Quiz { categoryId: 0, level: 'UNKNOWN', point: 0, + ); }