@@ -158,9 +158,6 @@ public class NetworkLayer: NSObject, URLSessionDataDelegate {
158158 }
159159 }
160160
161- instance. _cache? . storeResponse ( loadedResponse!, data: dataResult,
162- for: task, expiry: request. cachingTime. expirationDate ?? Date ( ) )
163-
164161 instance. proceedResponse ( response: loadedResponse!,
165162 data: dataResult,
166163 operationId: operation. identifier,
@@ -237,6 +234,14 @@ public class NetworkLayer: NSObject, URLSessionDataDelegate {
237234 if !request. responseBodyObject. shouldUseCustomInitializer {
238235 do {
239236 let jsonObject = try JSONDecoder ( ) . decode ( request. responseBodyObject, from: data)
237+
238+ if request. autoCache, let cacheTiming = jsonObject. cachingEndsAt ( ) {
239+ self . _cache? . storeResponse ( response, data: data, for: dataTask, expiry: cacheTiming)
240+ } else {
241+ self . _cache? . storeResponse ( response, data: data,
242+ for: dataTask, expiry: request. cachingTime. expirationDate ?? Date ( ) )
243+ }
244+
240245 DispatchQueue . main. async {
241246 completion ( . success( . init( response: response,
242247 responseBody: jsonObject,
@@ -257,6 +262,9 @@ public class NetworkLayer: NSObject, URLSessionDataDelegate {
257262 self . sendLog ( message: " Data Object created from Operation: \( operationId) - Object: \( dataObject. typeName) " )
258263 if request. autoCache, let cacheTiming = dataObject. cachingEndsAt ( ) {
259264 self . _cache? . storeResponse ( response, data: data, for: dataTask, expiry: cacheTiming)
265+ } else {
266+ self . _cache? . storeResponse ( response, data: data,
267+ for: dataTask, expiry: request. cachingTime. expirationDate ?? Date ( ) )
260268 }
261269 DispatchQueue . main. async {
262270 completion ( . success( APIResponse ( response: response,
@@ -272,6 +280,9 @@ public class NetworkLayer: NSObject, URLSessionDataDelegate {
272280 self . sendLog ( message: " Response Object Created from JSON Data with Operation: \( operationId) - Object: \( responseObject. typeName) " )
273281 if request. autoCache, let cacheTiming = responseObject. cachingEndsAt ( ) {
274282 self . _cache? . storeResponse ( response, data: data, for: dataTask, expiry: cacheTiming)
283+ } else {
284+ self . _cache? . storeResponse ( response, data: data,
285+ for: dataTask, expiry: request. cachingTime. expirationDate ?? Date ( ) )
275286 }
276287 DispatchQueue . main. async {
277288 completion ( . success( APIResponse ( response: response,
0 commit comments