Skip to content

Commit

Permalink
feat: openfoodfacts#233 - new class OpenFoodFactsCountry, clearer tha…
Browse files Browse the repository at this point in the history
…n "cc"

New file:
* `CountryHelper.dart`: country enums and their ISO-2-codes

Impacted files:
* `AbstractQueryConfiguration.dart`: deprecated `String? cc` in favor of `OpenFoodFactsCountry? country`
* `api_getTaxonomy_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyAdditives_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyAllergens_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyCategories_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyCountries_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyIngredients_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyLabels_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `api_getTaxonomyLanguages_test.dart`: now using `OpenFoodAPIConfiguration.globalCountry`
* `OpenFoodAPIConfiguration.dart`: deprecated `String? globalCC` in favor of `OpenFoodFactsCountry? globalCountry`
* `openfoodfacts.dart`: minor refactoring
* `ProductListQueryConfiguration.dart`: added parameter `OpenFoodFactsCountry? country`
* `ProductQueryConfigurations.dart`: added parameter `OpenFoodFactsCountry? country`
* `ProductSearchQueryConfiguration.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyAdditive.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyAllergen.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyCategory.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyCountry.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyIngredient.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyLabel.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyLanguage.dart`: added parameter `OpenFoodFactsCountry? country`
* `TaxonomyQueryConfiguration.dart`: deprecated `String? cc` in favor of `OpenFoodFactsCountry? country`
  • Loading branch information
monsieurtanuki committed Nov 15, 2021
1 parent 797339d commit e3bbb90
Show file tree
Hide file tree
Showing 23 changed files with 1,115 additions and 14 deletions.
3 changes: 3 additions & 0 deletions lib/model/TaxonomyAdditive.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -336,13 +337,15 @@ class TaxonomyAdditiveQueryConfiguration extends TaxonomyQueryConfiguration<
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyAdditiveField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super(
TagType.LABELS,
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
3 changes: 3 additions & 0 deletions lib/model/TaxonomyAllergen.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -80,13 +81,15 @@ class TaxonomyAllergenQueryConfiguration extends TaxonomyQueryConfiguration<
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyAllergenField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super(
TagType.ALLERGENS,
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
5 changes: 5 additions & 0 deletions lib/model/TaxonomyCategory.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -335,6 +336,7 @@ class TaxonomyCategoryQueryConfiguration extends TaxonomyQueryConfiguration<
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
bool includeChildren = false,
List<TaxonomyCategoryField> fields = const [],
List<Parameter> additionalParameters = const [],
Expand All @@ -343,6 +345,7 @@ class TaxonomyCategoryQueryConfiguration extends TaxonomyQueryConfiguration<
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
Expand All @@ -351,13 +354,15 @@ class TaxonomyCategoryQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyCategoryQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
bool includeChildren = false,
List<TaxonomyCategoryField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super.roots(
TagType.CATEGORIES,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
3 changes: 3 additions & 0 deletions lib/model/TaxonomyCountry.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -104,13 +105,15 @@ class TaxonomyCountryQueryConfiguration
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyCountryField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super(
TagType.LABELS,
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
5 changes: 5 additions & 0 deletions lib/model/TaxonomyIngredient.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -472,6 +473,7 @@ class TaxonomyIngredientQueryConfiguration extends TaxonomyQueryConfiguration<
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyIngredientField> fields = const [],
List<Parameter> additionalParameters = const [],
bool includeChildren = false,
Expand All @@ -480,6 +482,7 @@ class TaxonomyIngredientQueryConfiguration extends TaxonomyQueryConfiguration<
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
Expand All @@ -488,13 +491,15 @@ class TaxonomyIngredientQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyIngredientQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyIngredientField> fields = const [],
List<Parameter> additionalParameters = const [],
bool includeChildren = false,
}) : super.roots(
TagType.INGREDIENTS,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
5 changes: 5 additions & 0 deletions lib/model/TaxonomyLabel.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -280,13 +281,15 @@ class TaxonomyLabelQueryConfiguration
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyLabelField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super(
TagType.LABELS,
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand All @@ -295,12 +298,14 @@ class TaxonomyLabelQueryConfiguration
TaxonomyLabelQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyLabelField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super.roots(
TagType.LABELS,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
3 changes: 3 additions & 0 deletions lib/model/TaxonomyLanguage.dart
@@ -1,6 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/interface/JsonObject.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/TaxonomyQueryConfiguration.dart';
import 'package:openfoodfacts/utils/TagType.dart';

Expand Down Expand Up @@ -95,13 +96,15 @@ class TaxonomyLanguageQueryConfiguration extends TaxonomyQueryConfiguration<
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyLanguageField> fields = const [],
List<Parameter> additionalParameters = const [],
}) : super(
TagType.LABELS,
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: false,
fields: fields,
additionalParameters: additionalParameters,
Expand Down
2 changes: 1 addition & 1 deletion lib/openfoodfacts.dart
Expand Up @@ -835,7 +835,7 @@ class OpenFoodAPIClient {
queryParameters: <String, String>{
'fields': KNOWLEDGE_PANELS_FIELD,
'lc': configuration.language!.code,
'cc': configuration.cc!,
'cc': configuration.computeCountryCode()!,
},
);

Expand Down
19 changes: 15 additions & 4 deletions lib/utils/AbstractQueryConfiguration.dart
@@ -1,5 +1,6 @@
import 'package:openfoodfacts/interface/Parameter.dart';
import 'package:openfoodfacts/model/parameter/TagFilter.dart';
import 'package:openfoodfacts/utils/CountryHelper.dart';
import 'package:openfoodfacts/utils/LanguageHelper.dart';
import 'package:openfoodfacts/utils/OpenFoodAPIConfiguration.dart';
import 'package:openfoodfacts/utils/ProductFields.dart';
Expand Down Expand Up @@ -29,7 +30,13 @@ abstract class AbstractQueryConfiguration {
@Deprecated('Use parameters language or languages instead')
String? lc;

// TODO: deprecated from 2021-11-15 (#233); remove when old enough
@Deprecated('Use parameter country instead')
String? cc;

/// The country for this query, if any.
final OpenFoodFactsCountry? country;

List<ProductField>? fields;

List<Parameter> additionalParameters;
Expand All @@ -39,6 +46,7 @@ abstract class AbstractQueryConfiguration {
this.languages,
this.lc,
this.cc,
this.country,
this.fields,
this.additionalParameters = const [],
}) {
Expand Down Expand Up @@ -78,10 +86,9 @@ abstract class AbstractQueryConfiguration {
result.putIfAbsent('lc', () => lc!);
}

if (cc != null) {
result.putIfAbsent('cc', () => cc!);
} else if (OpenFoodAPIConfiguration.globalCC != null) {
result.putIfAbsent('cc', () => OpenFoodAPIConfiguration.globalCC!);
final String? countryCode = computeCountryCode();
if (countryCode != null) {
result.putIfAbsent('cc', () => countryCode);
}

if (fields != null) {
Expand Down Expand Up @@ -110,4 +117,8 @@ abstract class AbstractQueryConfiguration {

return result;
}

String? computeCountryCode() =>
// ignore: deprecated_member_use_from_same_package
OpenFoodAPIConfiguration.computeCountryCode(country, cc);
}

0 comments on commit e3bbb90

Please sign in to comment.