postCached<T> method

  1. @override
Future<Result<T>> postCached<T>(
  1. String path, {
  2. dynamic data,
  3. Map<String, dynamic>? queryParameters,
  4. FutureOr<T> onSuccess(
    1. dynamic data
    )?,
  5. FutureOr<T> onError(
    1. dynamic data
    )?,
})
override

Retrieves a cached response for a POST request.

The cache key is generated from the path, query parameters, request data, and headers. This method does not make a network request.

Useful for caching search results or other read-only POST endpoints.

Implementation

@override
Future<Result<T>> postCached<T>(
  String path, {
  data,
  Map<String, dynamic>? queryParameters,
  FutureOr<T> Function(dynamic data)? onSuccess,
  FutureOr<T> Function(dynamic data)? onError,
}) async {
  final requestOptions = RequestOptions(
    path: path,
    queryParameters: queryParameters,
    data: data,
    headers: _dio.options.headers,
  );

  try {
    return CacheResult(
      data: await _resolveResult(
        await cacheHandler.get(requestOptions),
        onSuccess,
      ),
    );
  } catch (e) {
    debugPrint(e.toString());
    return Result.error(exception: Exception(e.toString()));
  }
}