mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-08 11:45:58 +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)")
|
||||
}
|
||||
|
||||
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 {
|
||||
let sessionId: String
|
||||
|
|
|
|||
Loading…
Reference in a new issue