From 5b641920a1f06d26cbc31e2d3155935f34e5d0cc Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Thu, 23 Dec 2021 11:02:38 +0100
Subject: [PATCH] Improve network error model

---
 AppleLibs/Network/Requests/DataManager.swift   | 2 +-
 AppleLibs/Network/Requests/ResponseError.swift | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/AppleLibs/Network/Requests/DataManager.swift b/AppleLibs/Network/Requests/DataManager.swift
index 31f2c73..664c71a 100644
--- a/AppleLibs/Network/Requests/DataManager.swift
+++ b/AppleLibs/Network/Requests/DataManager.swift
@@ -109,7 +109,7 @@ open class DataManager: NSObject, URLSessionDelegate
         }
 
         guard let response: HTTPURLResponse = response as? HTTPURLResponse else {
-            throw ResponseError.networkError(url: r.url, error: .unknown())
+            throw ResponseError.typeError
         }
         
         do {
diff --git a/AppleLibs/Network/Requests/ResponseError.swift b/AppleLibs/Network/Requests/ResponseError.swift
index 1febd43..dd33710 100644
--- a/AppleLibs/Network/Requests/ResponseError.swift
+++ b/AppleLibs/Network/Requests/ResponseError.swift
@@ -21,7 +21,7 @@ public enum ResponseError: Error
         case noInternet
         case timeout
         case serverNotFound
-        case unknown(error: Error? = nil)
+        case unknown(error: Error)
     }
 
     public enum HttpError: Error
@@ -29,9 +29,11 @@ public enum ResponseError: Error
         case badRequest
         case notFound
         case internalError
+        case raw(code: Int)
     }
 
     case requestError
+    case typeError
     case authError(url: String, error: AuthError)
     case httpError(url: String, error: HttpError)
     case networkError(url: String, error: NetworkError)
@@ -52,7 +54,7 @@ public enum ResponseError: Error
             return ResponseError.httpError(url: url, error: .internalError)
 
         default:
-            return ResponseError.networkError(url: url, error: .unknown())
+            return ResponseError.httpError(url: url, error: .raw(code: code))
         }
     }
 }
-- 
GitLab