diff --git a/lib/utils/HttpHelper.dart b/lib/utils/HttpHelper.dart index 2f74b7fd60..f25ba26945 100644 --- a/lib/utils/HttpHelper.dart +++ b/lib/utils/HttpHelper.dart @@ -3,6 +3,8 @@ import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:meta/meta.dart'; +import 'package:openfoodfacts/model/UserAgent.dart'; + import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:openfoodfacts/utils/UriReader.dart'; import 'package:path/path.dart'; @@ -141,7 +143,7 @@ class HttpHelper { 'Accept': 'application/json', 'UserAgent': OpenFoodAPIConfiguration.userAgent?.toValueString() ?? USER_AGENT, - 'From': (user != null) ? user.userId : FROM, + 'From': OpenFoodAPIConfiguration.getUser(user)?.toValueString() ?? FROM, }); if (isTestModeActive) { diff --git a/lib/utils/OpenFoodAPIConfiguration.dart b/lib/utils/OpenFoodAPIConfiguration.dart index f8aa654c5a..cbea8f6011 100644 --- a/lib/utils/OpenFoodAPIConfiguration.dart +++ b/lib/utils/OpenFoodAPIConfiguration.dart @@ -1,3 +1,4 @@ +import 'package:openfoodfacts/model/User.dart'; import 'package:openfoodfacts/model/UserAgent.dart'; import 'CountryHelper.dart'; @@ -13,6 +14,9 @@ class OpenFoodAPIConfiguration { ///Defines a global userAgent to tell the backend the source of the request. static UserAgent? userAgent; + ///Defines a global user to avoid adding it to every request + static User? globalUser; + ///change the uriScheme of the requests static String uriScheme = 'https'; @@ -52,6 +56,9 @@ class OpenFoodAPIConfiguration { static QueryType getQueryType(final QueryType? queryType) => queryType ?? globalQueryType; + ///Returns the [User] to use, using a default value + static User? getUser(final User? user) => user ?? globalUser; + /// Returns the most relevant country code static String? computeCountryCode( final OpenFoodFactsCountry? country,