From 321b6965fb1cd5a827f7a6794725aa6c88084e58 Mon Sep 17 00:00:00 2001 From: Flaviu Mates Date: Thu, 25 Jun 2020 15:04:21 +0300 Subject: [PATCH] TT#84254 - Allow patching of rewriterules on /api/rewriterulesets * The resource was not having the rewriterules before patching the json, because they were added only at the end in the hal resource Change-Id: I43decadb95b6cf06828969b968c61a4b87062fb6 --- lib/NGCP/Panel/Role/API/RewriteRuleSets.pm | 46 ++++++++++++---------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/lib/NGCP/Panel/Role/API/RewriteRuleSets.pm b/lib/NGCP/Panel/Role/API/RewriteRuleSets.pm index 89577a870a..83756c26b7 100644 --- a/lib/NGCP/Panel/Role/API/RewriteRuleSets.pm +++ b/lib/NGCP/Panel/Role/API/RewriteRuleSets.pm @@ -37,27 +37,6 @@ sub get_form { } } -sub post_process_hal_resource { - my($self, $c, $item, $resource, $form) = @_; - my $rwr_form = $self->get_form($c, "rules"); - my @rewriterules; - for my $rule ( $item->voip_rewrite_rules->search_rs(undef, { order_by => { '-asc' => 'priority' } } )->all ) { - my $rule_resource = { $rule->get_inflated_columns }; - return unless $self->validate_form( - c => $c, - form => $rwr_form, - resource => $rule_resource, - run => 0, - ); - delete $rule_resource->{set_id}; - $rule_resource->{match_pattern} = $rwr_form->inflate_match_pattern($rule_resource->{match_pattern}); - $rule_resource->{replace_pattern} = $rwr_form->inflate_replace_pattern($rule_resource->{replace_pattern}); - push @rewriterules, $rule_resource; - } - $resource->{rewriterules} = \@rewriterules; - return $resource; -} - sub _item_rs { my ($self, $c, $type) = @_; my $item_rs; @@ -77,6 +56,31 @@ sub process_form_resource{ return $resource; } +sub resource_from_item { + my ($self, $c, $item, $form) = @_; + + my %resource = $item->get_inflated_columns; + my $rwr_form = $self->get_form($c, "rules"); + my @rewriterules = (); + + foreach my $rule ($item->voip_rewrite_rules->search_rs(undef, { order_by => { '-asc' => 'priority' } } )->all) { + my $rule_resource = { $rule->get_inflated_columns }; + return unless $self->validate_form( + c => $c, + form => $rwr_form, + resource => $rule_resource, + run => 0, + ); + delete $rule_resource->{set_id}; + $rule_resource->{match_pattern} = $rwr_form->inflate_match_pattern($rule_resource->{match_pattern}); + $rule_resource->{replace_pattern} = $rwr_form->inflate_replace_pattern($rule_resource->{replace_pattern}); + push @rewriterules, $rule_resource; + } + $resource{rewriterules} = \@rewriterules; + + return \%resource; +} + sub check_resource{ my($self, $c, $item, $old_resource, $resource, $form, $process_extras) = @_; my $schema = $c->model('DB');