From 54b8dfc5228c83348c103d9c0a49ba9f5c6e4bb3 Mon Sep 17 00:00:00 2001 From: slavap Date: Mon, 26 Apr 2021 17:38:29 -0700 Subject: [PATCH 1/6] _buildResponse() renamed to buildResponse(), and changed to protected and async --- lib/src/manager_dio.dart | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/src/manager_dio.dart b/lib/src/manager_dio.dart index 3645f86..8a91f9a 100644 --- a/lib/src/manager_dio.dart +++ b/lib/src/manager_dio.dart @@ -5,6 +5,7 @@ import 'package:dio/dio.dart'; import 'package:dio_http_cache/src/core/config.dart'; import 'package:dio_http_cache/src/core/manager.dart'; import 'package:dio_http_cache/src/core/obj.dart'; +import 'package:flutter/foundation.dart'; const DIO_CACHE_KEY_TRY_CACHE = "dio_cache_try_cache"; const DIO_CACHE_KEY_MAX_AGE = "dio_cache_max_age"; @@ -47,14 +48,17 @@ class DioCacheManager { } var responseDataFromCache = await _pullFromCacheBeforeMaxAge(options); if (null != responseDataFromCache) { - return handler.resolve(_buildResponse( - responseDataFromCache, responseDataFromCache.statusCode, options), true); + return handler.resolve( + await buildResponse( + responseDataFromCache, responseDataFromCache.statusCode, options), + true); } return handler.next(options); } _onResponse(Response response, ResponseInterceptorHandler handler) async { - if ((response.requestOptions.extra[DIO_CACHE_KEY_TRY_CACHE] ?? false) == true && + if ((response.requestOptions.extra[DIO_CACHE_KEY_TRY_CACHE] ?? false) == + true && response.statusCode != null && response.statusCode! >= 200 && response.statusCode! < 300) { @@ -65,9 +69,10 @@ class DioCacheManager { _onError(DioError e, ErrorInterceptorHandler handler) async { if ((e.requestOptions.extra[DIO_CACHE_KEY_TRY_CACHE] ?? false) == true) { - var responseDataFromCache = await _pullFromCacheBeforeMaxStale(e.requestOptions); + var responseDataFromCache = + await _pullFromCacheBeforeMaxStale(e.requestOptions); if (null != responseDataFromCache) { - var response = _buildResponse(responseDataFromCache, + var response = await buildResponse(responseDataFromCache, responseDataFromCache.statusCode, e.requestOptions); return handler.resolve(response); @@ -76,8 +81,9 @@ class DioCacheManager { return handler.next(e); } - Response _buildResponse( - CacheObj obj, int? statusCode, RequestOptions options) { + @protected + Future buildResponse( + CacheObj obj, int? statusCode, RequestOptions options) async { Headers? headers; if (null != obj.headers) { headers = Headers.fromMap((Map>.from( @@ -97,7 +103,8 @@ class DioCacheManager { return Response( data: data, headers: headers, - requestOptions: options.copyWith(extra: options.extra..remove(DIO_CACHE_KEY_TRY_CACHE)), + requestOptions: options.copyWith( + extra: options.extra..remove(DIO_CACHE_KEY_TRY_CACHE)), statusCode: statusCode ?? 200); } @@ -147,8 +154,10 @@ class DioCacheManager { // try to get maxAge and maxStale from cacheControl Map parameters; try { - parameters = HeaderValue.parse("${HttpHeaders.cacheControlHeader}: $cacheControl", - parameterSeparator: ",", valueSeparator: "=") + parameters = HeaderValue.parse( + "${HttpHeaders.cacheControlHeader}: $cacheControl", + parameterSeparator: ",", + valueSeparator: "=") .parameters; _maxAge = _tryGetDurationFromMap(parameters, "s-maxage"); if (null == _maxAge) { @@ -179,7 +188,8 @@ class DioCacheManager { callback(_maxAge, maxStale); } - Duration? _tryGetDurationFromMap(Map parameters, String key) { + Duration? _tryGetDurationFromMap( + Map parameters, String key) { if (parameters.containsKey(key)) { var value = int.tryParse(parameters[key]!); if (null != value && value >= 0) { From 142701794d2a16665304c7abdc88d000b0f4e529 Mon Sep 17 00:00:00 2001 From: slavap Date: Tue, 17 Aug 2021 15:07:37 -0700 Subject: [PATCH 2/6] json_serializable: ^4.1.0 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9fa5126..01aebba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: dio: ^4.0.0 flutter: sdk: flutter - json_serializable: ^4.0.3 + json_serializable: ^4.1.0 path: ^1.8.0 quiver: ^3.0.0 sqflite: ^2.0.0+3 From 3c4a3bbd701bd939e89db08318cc09233431179e Mon Sep 17 00:00:00 2001 From: slavap Date: Tue, 17 Aug 2021 15:33:21 -0700 Subject: [PATCH 3/6] Revert "json_serializable: ^4.1.0" This reverts commit 142701794d2a16665304c7abdc88d000b0f4e529. --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 01aebba..9fa5126 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: dio: ^4.0.0 flutter: sdk: flutter - json_serializable: ^4.1.0 + json_serializable: ^4.0.3 path: ^1.8.0 quiver: ^3.0.0 sqflite: ^2.0.0+3 From 7533b38b4c19cd3ca32d08986f6754be023a5bd4 Mon Sep 17 00:00:00 2001 From: slavap Date: Tue, 14 Sep 2021 22:53:13 -0700 Subject: [PATCH 4/6] json_serializable 5.0.0 --- pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9fa5126..666d846 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,14 +7,14 @@ authors: homepage: https://github.com/hurshi/dio-http-cache environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.13.0 <3.0.0' dependencies: crypto: ^3.0.0 dio: ^4.0.0 flutter: sdk: flutter - json_serializable: ^4.0.3 + json_serializable: ^5.0.0 path: ^1.8.0 quiver: ^3.0.0 sqflite: ^2.0.0+3 From 7e9361bac5ebc22bc5021e8bc0b74de482e413cd Mon Sep 17 00:00:00 2001 From: slavap Date: Wed, 15 Sep 2021 17:27:08 -0700 Subject: [PATCH 5/6] json_serializable: ^5.0.1 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 666d846..0934090 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: dio: ^4.0.0 flutter: sdk: flutter - json_serializable: ^5.0.0 + json_serializable: ^5.0.1 path: ^1.8.0 quiver: ^3.0.0 sqflite: ^2.0.0+3 From 6547ec392cc7e12c6197838e216f4dd899830bb9 Mon Sep 17 00:00:00 2001 From: slavap Date: Fri, 15 Oct 2021 17:44:25 -0700 Subject: [PATCH 6/6] json_serializable: ^6.0.0 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 0934090..77f8eb7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: dio: ^4.0.0 flutter: sdk: flutter - json_serializable: ^5.0.1 + json_serializable: ^6.0.0 path: ^1.8.0 quiver: ^3.0.0 sqflite: ^2.0.0+3