sendRequestToEndpoint<T> method
Future<T>
sendRequestToEndpoint<T>({
- required BaseRequest prepareRequest(),
- required T jsonConverter(
- Response
- String? requestIdentifier,
- bool canUseCacheForResponse = false,
- bool canSaveResponseToCache = true,
- bool canUseOldCachedResponseAsFallback = true,
- List<
String> extraTagsToAssociate = const [], - List<
String> extraTagsToClear = const [], - Duration maxCacheAge = const Duration(days: 1),
override
Implementation
@override
Future<T> sendRequestToEndpoint<T>(
{required BaseRequest Function() prepareRequest,
required T Function(Response) jsonConverter,
String? requestIdentifier,
bool canUseCacheForResponse = false,
bool canSaveResponseToCache = true,
bool canUseOldCachedResponseAsFallback = true,
/// Extra tags to associate with the cache entry
List<String> extraTagsToAssociate = const [],
/// Extra tags to clear from the cache if this request succeeds
List<String> extraTagsToClear = const [],
Duration maxCacheAge = const Duration(days: 1)}) async {
final T result = await _sendRequest(
requestIdentifier: requestIdentifier,
canUseCacheForResponse: canUseCacheForResponse,
canSaveResponseToCache: canSaveResponseToCache,
canUseOldCachedResponseAsFallback: canUseOldCachedResponseAsFallback,
maxCacheAge: maxCacheAge,
prepareRequest: () {
final request = prepareRequest();
return PreparedRequest(
request: _api.authenticateRequest(request),
tags: ["customRequest", ...extraTagsToAssociate]);
},
parseResponse: (response) => jsonConverter(response));
if (cacheEngine != null && extraTagsToClear.isNotEmpty) {
await removeCacheEntriesWithTags(extraTagsToClear);
}
return result;
}