diff --git a/lib/src/api_options/api_options.dart b/lib/src/api_options/api_options.dart index 98e2f30..825d411 100644 --- a/lib/src/api_options/api_options.dart +++ b/lib/src/api_options/api_options.dart @@ -8,6 +8,7 @@ class ApiOptions { this.refreshCache, this.expireDuration = const Duration(days: 1), this.cancelToken, + this.ignoreAutoRefresh = false, }); Map? headers; @@ -21,4 +22,6 @@ class ApiOptions { Duration? expireDuration; CancelToken? cancelToken; + + bool? ignoreAutoRefresh; } diff --git a/lib/src/api_service_impl.dart b/lib/src/api_service_impl.dart index 4630528..67b0f02 100644 --- a/lib/src/api_service_impl.dart +++ b/lib/src/api_service_impl.dart @@ -192,7 +192,8 @@ class ApiServiceImpl implements ApiService { "expirationTime": options?.expireDuration != null ? _now.add(options!.expireDuration!).toString() : _midnightTime.toString(), - "expireDuration": options?.expireDuration + "expireDuration": options?.expireDuration, + "ignoreAutoRefresh": options?.ignoreAutoRefresh ?? false, }; return headers; } diff --git a/lib/src/interceptors/cache_interceptor.dart b/lib/src/interceptors/cache_interceptor.dart index 360b691..0f6c2c8 100644 --- a/lib/src/interceptors/cache_interceptor.dart +++ b/lib/src/interceptors/cache_interceptor.dart @@ -60,6 +60,9 @@ abstract class ApiCacheInterceptor extends Interceptor { ), ); if (!isValid) { + if (keyData['appSpecificHeaders']?['ignoreAutoRefresh'] ?? false) { + return null; + } refreshCache(options); }