find method

Future<SauceNaoResults> find(
  1. String imageUrl, [
  2. Map<String, dynamic>? requestParams
])

Searches for the image on sauce nao. Returns a SauceNaoResults If no results are found, returns null. If an error occurs, throws an SauceNaoException. requestParams is here to override the default request params.

Implementation

Future<SauceNaoResults> find(String imageUrl,
    [Map<String, dynamic>? requestParams]) async {
  final uri = _baseUri.replace(
      queryParameters: (requestParams ?? this.requestParams!)
        ..addAll({'url': imageUrl}));

  final request = await _httpClient.getUrl(uri);
  final response = await request.close();
  final body = await response.transform(utf8.decoder).join();

  if (response.statusCode != 200) {
    throw SauceNaoException(
      'Error while searching for image.\n'
      'Status code: ${response.statusCode}\n'
      'Body: $body',
    );
  }

  final json = jsonDecode(body);
  _httpClient.close();
  return SauceNaoResults(json);
}