getStream method

Stream getStream({
  1. required String endPointURL,
  2. Map<String, dynamic>? queryParameters,
  3. Map<String, dynamic>? header,
  4. bool useCache = true,
})

get request in form of stream.

NOTE: Still in development.

A StreamBuilder Widget can be used to get this data. first it will return the cache data and then the response data.

Implementation

Stream getStream({required String endPointURL, Map<String, dynamic>? queryParameters, Map<String, dynamic>? header, bool useCache = true}) async* {
  if (useCache && _storage.hasData(endPointURL)) yield _storage.read(endPointURL);
  Response response = await _dio.get(endPointURL, options: Options(headers: header), queryParameters: queryParameters);
  if (response.statusCode == 200) {
    if (useCache) _storage.write(endPointURL, response.data);
    yield response.data;
  } else {
    yield null;
  }
}