postStreamed<T> method

  1. @override
Stream<Result<T>> postStreamed<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
    )?,
  6. RestApiClientRequestOptions? options,
  7. Duration? cacheLifetimeDuration,
})
override

Performs a streamed POST request to the specified path, optionally using cached data.

Implementation

@override
Stream<Result<T>> postStreamed<T>(
  String path, {
  data,
  Map<String, dynamic>? queryParameters,
  FutureOr<T?> Function(dynamic data)? onSuccess,
  FutureOr<T> Function(dynamic data)? onError,
  RestApiClientRequestOptions? options,
  Duration? cacheLifetimeDuration,
}) async* {
  // Check for cached result if caching is enabled.
  if (_options.cacheEnabled) {
    final cachedResult = await postCached(
      path,
      queryParameters: queryParameters,
      data: data,
      onSuccess: onSuccess,
    );

    if (cachedResult.hasData) {
      yield cachedResult; // Yield cached result
    }
  }

  yield await post(
    path, // Perform actual POST request
    queryParameters: queryParameters, // Query parameters for request
    data: data, // Data to send in the request body
    onSuccess: onSuccess, // Optional success callback
    options: options, // Optional request options
    cacheLifetimeDuration: cacheLifetimeDuration,
  );
}