diff --git a/lib/NGCP/Panel/Utils/Preferences.pm b/lib/NGCP/Panel/Utils/Preferences.pm index b0edd1cf6d..eb77cabcae 100644 --- a/lib/NGCP/Panel/Utils/Preferences.pm +++ b/lib/NGCP/Panel/Utils/Preferences.pm @@ -327,7 +327,7 @@ sub prepare_resource { $value = $pref->value; } # SWITCH eval { - $value = _api_transform_out($c, $pref->attribute, $pref->value); + $value = _api_transform_out($c, $pref->attribute, $value); }; if ($@) { $c->log->error("Failed to transform pref value - $@"); @@ -1001,14 +1001,20 @@ sub _api_transform_out { if ($c->request and $c->request->path =~/^api\//i) { $API_TRANSFORM_OUT = _init_transform($API_TRANSFORM_OUT,$c->config->{preference_out_transformations}); if (exists $API_TRANSFORM_OUT->{$meta->attribute}) { - if (defined $value and exists $API_TRANSFORM_OUT->{$meta->attribute}->{$value}) { - $value = $API_TRANSFORM_OUT->{$meta->attribute}->{$value}; - if ('CODE' eq ref $value) { - eval { - $value = $value->($meta,$value); - }; - if ($@) { - die($meta->attribute . ": " . $@); + if (defined $value) { + my $v = $value; + if (JSON::is_bool($v)) { + $v = $v ? 1 : 0 ; + } + if (exists $API_TRANSFORM_OUT->{$meta->attribute}->{$v}) { + $value = $API_TRANSFORM_OUT->{$meta->attribute}->{$v}; + if ('CODE' eq ref $value) { + eval { + $value = $value->($meta,$value); + }; + if ($@) { + die($meta->attribute . ": " . $@); + } } } }