mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-27 15:17:38 +00:00
Improve error handling
This commit is contained in:
parent
35c2908a57
commit
f197e26fb0
1 changed files with 18 additions and 1 deletions
|
|
@ -179,7 +179,24 @@ class APIClient: APIClientProtocol {
|
||||||
print("[APIClient] Response body: \(responseString)")
|
print("[APIClient] Response body: \(responseString)")
|
||||||
}
|
}
|
||||||
|
|
||||||
try validateResponse(response)
|
// Check if the response is an error
|
||||||
|
if let httpResponse = response as? HTTPURLResponse, !(200..<300).contains(httpResponse.statusCode) {
|
||||||
|
// Try to parse error response
|
||||||
|
struct ErrorResponse: Codable {
|
||||||
|
let error: String?
|
||||||
|
let details: String?
|
||||||
|
let code: String?
|
||||||
|
}
|
||||||
|
|
||||||
|
if let errorResponse = try? decoder.decode(ErrorResponse.self, from: responseData) {
|
||||||
|
let errorMessage = errorResponse.details ?? errorResponse.error ?? "Unknown error"
|
||||||
|
print("[APIClient] Server error: \(errorMessage)")
|
||||||
|
throw APIError.serverError(httpResponse.statusCode, errorMessage)
|
||||||
|
} else {
|
||||||
|
// Fallback to generic error
|
||||||
|
throw APIError.serverError(httpResponse.statusCode, nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct CreateResponse: Codable {
|
struct CreateResponse: Codable {
|
||||||
let sessionId: String
|
let sessionId: String
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue