From 4b14ac2ff7ed1e0399683b0f5a38115df74e572c Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Mon, 13 Dec 2021 13:29:07 +0100
Subject: [PATCH] Make response handlers async

---
 AppleLibs/Network/Requests/DataManager.swift | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/AppleLibs/Network/Requests/DataManager.swift b/AppleLibs/Network/Requests/DataManager.swift
index 9eaf31c..0b3f417 100644
--- a/AppleLibs/Network/Requests/DataManager.swift
+++ b/AppleLibs/Network/Requests/DataManager.swift
@@ -12,12 +12,14 @@ import os.log
 
 public protocol HttpResponseFilter
 {
-    func handleResponse(request: Request, data: Data?, responseHandler: ResponseHandler?, sender: Any?) throws -> Any?
+    @available(iOS 15.0.0, *)
+    func handleResponse(request: Request, data: Data?, responseHandler: ResponseHandler?, sender: Any?) async throws -> Any?
 }
 
 public protocol HttpSuccessFilter
 {
-    func handleResponse(data: Data?, response: HTTPURLResponse, responseHandler: ResponseHandler?, sender: Any?) throws -> Any?
+    @available(iOS 15.0.0, *)
+    func handleResponse(data: Data?, response: HTTPURLResponse, responseHandler: ResponseHandler?, sender: Any?) async throws -> Any?
 }
 
 public protocol DataManagerDelegate
@@ -112,9 +114,9 @@ public class DataManager: NSObject, URLSessionDelegate
         
         do {
             if response.is2xx {
-                return try self.responseOkFilter.handleResponse(data: data, response: response, responseHandler: responseHandler, sender: sender)
+                return try await self.responseOkFilter.handleResponse(data: data, response: response, responseHandler: responseHandler, sender: sender)
             } else if let filter = self.responseFilters[response.statusCode] {
-                return try filter.handleResponse(request: request, data: data, responseHandler: responseHandler, sender: sender)
+                return try await filter.handleResponse(request: request, data: data, responseHandler: responseHandler, sender: sender)
             } else {
                 throw ResponseError.getErrorForStatusCode(code: response.statusCode)
             }
-- 
GitLab