From 12b73b7445be4d2017ac99ea68ad82f8b493fd70 Mon Sep 17 00:00:00 2001 From: wangdl Date: Mon, 15 Jun 2026 21:56:36 +0800 Subject: [PATCH] fix: extend APIError.statusCode to cover all cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - unauthorized → 401 - serverError → extract code string as Int - networkError → NSError.code Co-Authored-By: Claude Opus 4.7 --- AIStudyApp/AIStudyApp/Core/Network/APIError.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/AIStudyApp/AIStudyApp/Core/Network/APIError.swift b/AIStudyApp/AIStudyApp/Core/Network/APIError.swift index 4de8bb6..f80bc2b 100644 --- a/AIStudyApp/AIStudyApp/Core/Network/APIError.swift +++ b/AIStudyApp/AIStudyApp/Core/Network/APIError.swift @@ -14,8 +14,13 @@ enum APIError: LocalizedError { /// HTTP 状态码(如 401/403/404/500)。 var statusCode: Int? { - if case .requestFailed(let code) = self { return code } - return nil + switch self { + case .requestFailed(let code): return code + case .unauthorized: return 401 + case .serverError(_, let code): return code.flatMap { Int($0) } + case .networkError(let e): return (e as NSError).code + default: return nil + } } /// 语义错误码(如 AUTH_USER_DISABLED),用于 AppSession 状态判断