getTaxonomy<T extends JsonObject, F extends Enum> static method

Future<Map<String, T>?> getTaxonomy<T extends JsonObject, F extends Enum>(
  1. TaxonomyQueryConfiguration<T, F> configuration, {
  2. User? user,
  3. UriProductHelper uriHelper = uriHelperFoodProd,
})

Implementation

static Future<Map<String, T>?>
    getTaxonomy<T extends JsonObject, F extends Enum>(
  TaxonomyQueryConfiguration<T, F> configuration, {
  User? user,
  final UriProductHelper uriHelper = uriHelperFoodProd,
}) async {
  final Uri uri = configuration.getPostUri(uriHelper);
  final Response response = await HttpHelper().doPostRequest(
    uri,
    configuration.getParametersMap(),
    user,
    uriHelper: uriHelper,
    addCredentialsToBody: false,
  );

  Map<String, dynamic> decodedJson =
      HttpHelper().jsonDecode(_replaceQuotes(response.body))
        ..removeWhere((String key, dynamic value) {
          if (value is Map) {
            return value.isEmpty;
          }
          if (value is List) {
            return value.isEmpty;
          }
          return false;
        });
  if (decodedJson.isEmpty) {
    // We requested something that doesn't have any results.
    return null;
  }
  return configuration.convertResults(decodedJson);
}