feat: handle 400 status code with unified error format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Misaka_Company
2026-05-11 12:47:21 +08:00
parent b129ed9714
commit 9e18ed4b8c

View File

@@ -54,12 +54,16 @@ class ApiService {
switch (response.statusCode) { switch (response.statusCode) {
case 200: case 200:
return RegistrationResult.ok(); return RegistrationResult.ok();
case 400:
final body = jsonDecode(response.body) as Map<String, dynamic>;
final msg = body['message']?.toString() ?? '请求参数错误';
return RegistrationResult.error(msg);
case 409: case 409:
final body = jsonDecode(response.body) as Map<String, dynamic>; final body = jsonDecode(response.body) as Map<String, dynamic>;
return RegistrationResult.duplicate(body); return RegistrationResult.duplicate(body);
default: default:
final body = jsonDecode(response.body) as Map<String, dynamic>; final body = jsonDecode(response.body) as Map<String, dynamic>;
final msg = body['error'] ?? body['message'] ?? 'Unknown error (${response.statusCode})'; final msg = body['message'] ?? body['error'] ?? 'Unknown error (${response.statusCode})';
return RegistrationResult.error(msg.toString()); return RegistrationResult.error(msg.toString());
} }
} catch (e) { } catch (e) {