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
Gets a cached response from the specified path
or network response if cache miss or expired.
Implementation
@override
Future<Result<T>> getCachedOrNetwork<T>(
String path, {
Map<String, dynamic>? queryParameters, // Optional query parameters
FutureOr<T?> Function(dynamic data)? onSuccess, // Callback on success
FutureOr<T> Function(dynamic data)? onError, // Callback on error
RestApiClientRequestOptions? options, // Request options
Duration?
cacheLifetimeDuration, // Lifetime of cached data, defaults to CacheOptions.cacheLifetimeDuration
}) async {
// Check for cached result
if (_options.cacheEnabled) {
final cachedResult = await getCached(
path,
queryParameters: queryParameters,
onSuccess: onSuccess,
);
if (cachedResult.hasData) {
return cachedResult; // return cached result
}
}
return await get(
path, // Perform actual GET request
queryParameters: queryParameters, // Query parameters for request
onSuccess: onSuccess, // Optional success callback
options: options, // Optional request options
cacheLifetimeDuration: cacheLifetimeDuration,
);
}