From 36e44a643950cc1540a6c0232e72c210d17fe6b5 Mon Sep 17 00:00:00 2001 From: Gerhard Jungwirth Date: Thu, 24 Jul 2014 13:45:22 +0200 Subject: [PATCH] MT#7673 update voicemail number in api --- lib/NGCP/Panel/Role/API/Preferences.pm | 8 ++++++++ lib/NGCP/Panel/Utils/Subscriber.pm | 13 +++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/NGCP/Panel/Role/API/Preferences.pm b/lib/NGCP/Panel/Role/API/Preferences.pm index 3299cdc8c2..2f713a03df 100644 --- a/lib/NGCP/Panel/Role/API/Preferences.pm +++ b/lib/NGCP/Panel/Role/API/Preferences.pm @@ -390,6 +390,10 @@ sub update_item { my $rs = $self->get_preference_rs($c, $type, $elem, $k); next 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); + } } } } @@ -557,6 +561,10 @@ sub update_item { } } } + if ($type eq "subscribers" && ($pref eq 'voicemail_echo_number' || $pref eq 'cli')) { + NGCP::Panel::Utils::Subscriber::update_voicemail_number( + schema => $c->model('DB'), subscriber => $item); + } } catch($e) { $c->log->error("failed to update preference for '$accessor': $e"); $self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Internal Server Error."); diff --git a/lib/NGCP/Panel/Utils/Subscriber.pm b/lib/NGCP/Panel/Utils/Subscriber.pm index 8e50cee93f..c4bc41936a 100644 --- a/lib/NGCP/Panel/Utils/Subscriber.pm +++ b/lib/NGCP/Panel/Utils/Subscriber.pm @@ -96,7 +96,7 @@ sub lock_provisoning_voip_subscriber { my $rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( c => $c, prov_subscriber => $prov_subscriber, - attribute => 'lock' + attribute => 'lock', ); try { if($rs->first) { @@ -354,6 +354,7 @@ sub update_preferences { }) if(defined $preferences->{$k}); } } + return; } sub update_pbx_group_prefs { @@ -419,8 +420,8 @@ sub update_subscriber_numbers { $billing_subs->update({ primary_number_id => undef, }); - } - elsif(defined $primary_number) { + update_voicemail_number(schema => $schema, subscriber => $billing_subs); + } elsif(defined $primary_number) { my $old_cc; my $old_ac; @@ -504,8 +505,8 @@ sub update_subscriber_numbers { } else { if (defined $billing_subs->primary_number) { $billing_subs->primary_number->delete; + update_voicemail_number(schema => $schema, subscriber => $billing_subs); } - update_voicemail_number(schema => $schema, subscriber => $billing_subs); } if ( (defined $old_cc && defined $old_sn) @@ -1033,12 +1034,12 @@ sub update_voicemail_number { my $echonumber_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( schema => $schema, prov_subscriber => $prov_subs, - attribute => 'voicemail_echo_number' + attribute => 'voicemail_echo_number', ); my $cli_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( schema => $schema, prov_subscriber => $prov_subs, - attribute => 'cli' + attribute => 'cli', ); if (defined $echonumber_pref_rs->first) { $new_cli = $echonumber_pref_rs->first->value;