Skip to content

Commit

Permalink
fix: new misc facets for packagings with weights (#7826)
Browse files Browse the repository at this point in the history
* fix: new misc facets for packagings with weights

* lint
  • Loading branch information
stephanegigandet committed Dec 12, 2022
1 parent 7b39820 commit ba763b6
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 120 deletions.
32 changes: 31 additions & 1 deletion lib/ProductOpener/Packaging.pm
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,14 @@ sub set_packaging_misc_tags ($product_ref) {
remove_tag($product_ref, "misc", "en:packagings-empty");
remove_tag($product_ref, "misc", "en:packagings-not-empty");
remove_tag($product_ref, "misc", "en:packagings-not-empty-but-not-complete");
remove_tag($product_ref, "misc", "en:packagings-with-weights");
remove_tag($product_ref, "misc", "en:packagings-complete-with-weights");
remove_tag($product_ref, "misc", "en:packagings-not-complete-with-weights");
remove_tag($product_ref, "misc", "en:packagings-with-some-weights");

# Number of packaging components
my $number_of_packaging_components
= (defined $product_ref->{packagings} ? scalar @{$product_ref->{packagings}} : 0);

if ($product_ref->{packagings_complete}) {
add_tag($product_ref, "misc", "en:packagings-complete");
Expand All @@ -693,7 +701,7 @@ sub set_packaging_misc_tags ($product_ref) {
else {
add_tag($product_ref, "misc", "en:packagings-not-complete");

if (scalar @{$product_ref->{packagings}} == 0) {
if ($number_of_packaging_components == 0) {
add_tag($product_ref, "misc", "en:packagings-empty");
}
else {
Expand All @@ -702,6 +710,28 @@ sub set_packaging_misc_tags ($product_ref) {
}
}

# Check if we have weights for all components
if ($number_of_packaging_components > 0) {
my $components_with_weights = 0;
foreach my $packaging_ref (@{$product_ref->{packagings}}) {
if ((defined $packaging_ref->{weight_specified}) or (defined $packaging_ref->{weight_measured})) {
$components_with_weights++;
}
}
if ($components_with_weights == $number_of_packaging_components) {
add_tag($product_ref, "misc", "en:packagings-with-weights");
if ($product_ref->{packagings_complete}) {
add_tag($product_ref, "misc", "en:packagings-complete-with-weights");
}
else {
add_tag($product_ref, "misc", "en:packagings-not-complete-with-weights");
}
}
elsif ($components_with_weights > 0) {
add_tag($product_ref, "misc", "en:packagings-with-some-weights");
}
}

return;
}

Expand Down
3 changes: 2 additions & 1 deletion tests/integration/api_v3_product_write.t
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ my $tests_ref = [
method => 'PATCH',
path => '/api/v3/product/1234567890008',
body => '{
"fields": "updated",
"fields": "updated,misc_tags",
"tags_lc": "en",
"product": {
"packagings_add": [
Expand Down Expand Up @@ -389,6 +389,7 @@ my $tests_ref = [
path => '/api/v3/product/1234567890013',
body => '{
"tags_lc": "en",
"fields": "updated,misc_tags",
"product": {
"packagings": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@
"code" : "1234567890008",
"errors" : [],
"product" : {
"misc_tags" : [
"en:nutriscore-not-computed",
"en:nutriscore-missing-category",
"en:nutrition-not-enough-data-to-compute-nutrition-score",
"en:nutriscore-missing-nutrition-data",
"en:nutriscore-missing-nutrition-data-energy",
"en:nutriscore-missing-nutrition-data-fat",
"en:nutriscore-missing-nutrition-data-saturated-fat",
"en:nutriscore-missing-nutrition-data-sugars",
"en:nutriscore-missing-nutrition-data-sodium",
"en:nutriscore-missing-nutrition-data-proteins",
"en:nutrition-no-fiber",
"en:packagings-not-complete",
"en:packagings-not-empty-but-not-complete",
"en:packagings-not-empty",
"en:packagings-with-weights",
"en:packagings-not-complete-with-weights",
"en:ecoscore-extended-data-not-computed",
"en:ecoscore-not-computed",
"en:main-countries-new-product"
],
"packagings" : [
{
"material" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@
"code" : "1234567890013",
"errors" : [],
"product" : {
"misc_tags" : [
"en:nutriscore-not-computed",
"en:nutriscore-missing-category",
"en:nutrition-not-enough-data-to-compute-nutrition-score",
"en:nutriscore-missing-nutrition-data",
"en:nutriscore-missing-nutrition-data-energy",
"en:nutriscore-missing-nutrition-data-fat",
"en:nutriscore-missing-nutrition-data-saturated-fat",
"en:nutriscore-missing-nutrition-data-sugars",
"en:nutriscore-missing-nutrition-data-sodium",
"en:nutriscore-missing-nutrition-data-proteins",
"en:nutrition-no-fiber",
"en:packagings-not-complete",
"en:packagings-not-empty-but-not-complete",
"en:packagings-not-empty",
"en:packagings-with-weights",
"en:packagings-not-complete-with-weights",
"en:ecoscore-extended-data-not-computed",
"en:ecoscore-not-computed",
"en:main-countries-new-product"
],
"packagings" : [
{
"number_of_units" : 1,
Expand Down

0 comments on commit ba763b6

Please sign in to comment.