diff --git a/lib/NGCP/Panel/Role/API/Preferences.pm b/lib/NGCP/Panel/Role/API/Preferences.pm index e492aba9f1..11be30686f 100644 --- a/lib/NGCP/Panel/Role/API/Preferences.pm +++ b/lib/NGCP/Panel/Role/API/Preferences.pm @@ -74,7 +74,10 @@ sub get_resource { SWITCH: for ($pref->attribute->attribute) { /^rewrite_calle[re]_(in|out)_dpid$/ && do { - next if(exists $resource->{rewrite_rule_set}); + if(exists $resource->{rewrite_rule_set}) { + $processed = 1; + last SWITCH; + } my $col = $pref->attribute->attribute; $col =~ s/^rewrite_//; my $rwr_set = $c->model('DB')->resultset('voip_rewrite_rule_sets')->find({ @@ -374,7 +377,7 @@ sub update_item { /^(adm_)?ncos$/ && do { unless(exists $resource->{$k}) { my $rs = $self->get_preference_rs($c, $type, $elem, $k . '_id'); - next unless $rs; # unknown resource, just ignore + last SWITCH unless $rs; # unknown resource, just ignore $rs->delete; } last SWITCH; @@ -382,7 +385,7 @@ sub update_item { /^(man_)?allowed_ips$/ && do { unless(exists $resource->{$k}) { my $rs = $self->get_preference_rs($c, $type, $elem, $k . '_grp'); - next unless $rs; # unknown resource, just ignore + last SWITCH unless $rs; # unknown resource, just ignore if($rs->first) { $c->model('DB')->resultset('voip_allowed_ip_groups')->search({ group_id => $rs->first->value, @@ -395,14 +398,14 @@ sub update_item { # default unless(exists $resource->{$k}) { my $rs = $self->get_preference_rs($c, $type, $elem, $k); - next unless $rs; # unknown resource, just ignore + last SWITCH unless $rs; # unknown resource, just ignore $rs->delete; if ($type eq "subscribers" && ($k eq 'voicemail_echo_number' || $k eq 'cli')) { NGCP::Panel::Utils::Subscriber::update_voicemail_number( schema => $c->model('DB'), subscriber => $item); } } - } + } # SWITCH } } catch($e) { $c->log->error("failed to clear preference for '$accessor': $e");