Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: #233 - new class OpenFoodFactsCountry, clearer than "cc" #292

Merged
merged 2 commits into from Nov 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion 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 @@ -335,14 +336,16 @@ class TaxonomyAdditiveQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyAdditiveQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
5 changes: 4 additions & 1 deletion 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 @@ -79,14 +80,16 @@ class TaxonomyAllergenQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyAllergenQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
9 changes: 7 additions & 2 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 @@ -334,7 +335,8 @@ class TaxonomyCategoryQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyCategoryQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') String? cc,
OpenFoodFactsCountry? country,
bool includeChildren = false,
List<TaxonomyCategoryField> fields = const [],
List<Parameter> additionalParameters = const [],
Expand All @@ -343,21 +345,24 @@ class TaxonomyCategoryQueryConfiguration extends TaxonomyQueryConfiguration<
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
);

TaxonomyCategoryQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
5 changes: 4 additions & 1 deletion 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 @@ -103,14 +104,16 @@ class TaxonomyCountryQueryConfiguration
TaxonomyCountryQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
9 changes: 7 additions & 2 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 @@ -471,7 +472,8 @@ class TaxonomyIngredientQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyIngredientQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') String? cc,
OpenFoodFactsCountry? country,
List<TaxonomyIngredientField> fields = const [],
List<Parameter> additionalParameters = const [],
bool includeChildren = false,
Expand All @@ -480,21 +482,24 @@ class TaxonomyIngredientQueryConfiguration extends TaxonomyQueryConfiguration<
tags,
languages: languages,
cc: cc,
country: country,
includeChildren: includeChildren,
fields: fields,
additionalParameters: additionalParameters,
);

TaxonomyIngredientQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
9 changes: 7 additions & 2 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 @@ -279,28 +280,32 @@ class TaxonomyLabelQueryConfiguration
TaxonomyLabelQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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,
);

TaxonomyLabelQueryConfiguration.roots({
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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
5 changes: 4 additions & 1 deletion 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 @@ -94,14 +95,16 @@ class TaxonomyLanguageQueryConfiguration extends TaxonomyQueryConfiguration<
TaxonomyLanguageQueryConfiguration({
required List<String> tags,
List<OpenFoodFactsLanguage>? languages = const [],
String? cc,
@Deprecated('Use parameter country instead') 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);
}