getCachedOrNetwork<T> method
Future<Result<T> >
getCachedOrNetwork<T>(
- String path, {
- Map<
String, dynamic> ? queryParameters, - FutureOr<
T> onSuccess(- dynamic data
- FutureOr<
T> onError(- dynamic data
- RestApiClientRequestOptions? options,
- Duration? cacheLifetimeDuration,
override
Retrieves data from cache if available, otherwise makes a network request.
This is a cache-first strategy: if valid cached data exists, it's returned immediately without making a network request. Otherwise, a GET request is made and the response is cached for future use.
Useful for data that doesn't change frequently and where stale data is acceptable.
Implementation
@override
Future<Result<T>> getCachedOrNetwork<T>(
String path, {
Map<String, dynamic>? queryParameters,
FutureOr<T> Function(dynamic data)? onSuccess,
FutureOr<T> Function(dynamic data)? onError,
RestApiClientRequestOptions? options,
Duration? cacheLifetimeDuration,
}) async {
if (_options.cacheEnabled) {
final cachedResult = await getCached(
path,
queryParameters: queryParameters,
onSuccess: onSuccess,
);
if (cachedResult.hasData) {
return cachedResult;
}
}
return await get(
path,
queryParameters: queryParameters,
onSuccess: onSuccess,
options: options,
cacheLifetimeDuration: cacheLifetimeDuration,
);
}