diff --git a/lib/NGCP/Panel/Controller/API/Resellers.pm b/lib/NGCP/Panel/Controller/API/Resellers.pm index 2d30af2be4..65a7b9b7dc 100644 --- a/lib/NGCP/Panel/Controller/API/Resellers.pm +++ b/lib/NGCP/Panel/Controller/API/Resellers.pm @@ -200,7 +200,6 @@ sub POST :Allow { status => $resource->{status}, contract_id => $resource->{contract_id}, }); - my $rtcfail = 0; NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller ); NGCP::Panel::Utils::Rtc::modify_reseller_rtc( resource => $resource, @@ -210,10 +209,8 @@ sub POST :Allow { my ($msg, $debug) = @_; $c->log->debug($debug) if $debug; $c->log->warn($msg); - $rtcfail = 1; - return; + die "failed to create rtcengine reseller"; }); - die "failed to create rtcengine reseller" if($rtcfail); } catch($e) { $c->log->error("failed to create reseller: $e"); # TODO: user, message, trace, ... $self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Failed to create reseller."); diff --git a/lib/NGCP/Panel/Controller/Reseller.pm b/lib/NGCP/Panel/Controller/Reseller.pm index 9fb26c8fe1..77c73b9625 100644 --- a/lib/NGCP/Panel/Controller/Reseller.pm +++ b/lib/NGCP/Panel/Controller/Reseller.pm @@ -109,35 +109,24 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) :Does(ACL) :AC NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller ); my $resource = $form->values; $resource->{rtc_networks} = [qw/sip xmpp webrtc conference/]; - eval { - NGCP::Panel::Utils::Rtc::modify_reseller_rtc( - resource => $resource, - config => $c->config, - reseller_item => $reseller, - err_code => sub { - my ($msg, $debug) = @_; - $c->log->debug($debug) if $debug; - $c->log->warn($msg); - die $msg,"\n"; - }); - }; - my $rtc_err = $@ // ''; + NGCP::Panel::Utils::Rtc::modify_reseller_rtc( + resource => $resource, + config => $c->config, + reseller_item => $reseller, + err_code => sub { + my ($msg, $debug) = @_; + $c->log->debug($debug) if $debug; + $c->log->warn($msg); + die $msg,"\n"; + }); delete $c->session->{created_objects}->{contract}; $c->session->{created_objects}->{reseller} = { id => $reseller->id }; - if ($rtc_err) { - NGCP::Panel::Utils::Message::error( - c => $c, - desc => $c->loc(sprintf '%s (%s)', - 'Reseller successfully updated', $rtc_err), - ); - } else { - NGCP::Panel::Utils::Message::info( - c => $c, - desc => $c->loc('Reseller successfully created.'), - ); - } + NGCP::Panel::Utils::Message::info( + c => $c, + desc => $c->loc('Reseller successfully created.'), + ); } catch($e) { NGCP::Panel::Utils::Message::error( c => $c, @@ -289,7 +278,7 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d my $params = { $reseller->get_inflated_columns }; $params->{contract}{id} = delete $params->{contract_id}; $params = merge($params, $c->session->{created_objects}); - $params->{enable_rtc} = $reseller->rtc_user; + $params->{enable_rtc} = !!$reseller->rtc_user; $form->process( posted => $posted, params => $c->request->params, @@ -316,20 +305,18 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d }); my $resource = $form->values; $resource->{rtc_networks} = [qw/sip xmpp webrtc conference/]; - eval { - NGCP::Panel::Utils::Rtc::modify_reseller_rtc( - old_resource => $params, - resource => $resource, - config => $c->config, - reseller_item => $reseller, - err_code => sub { - my ($msg, $debug) = @_; - $c->log->debug($debug) if $debug; - $c->log->warn($msg); - die $msg,"\n"; - }); - }; - $rtc_err = $@ // ''; + NGCP::Panel::Utils::Rtc::modify_reseller_rtc( + old_resource => $params, + resource => $resource, + config => $c->config, + reseller_item => $reseller, + err_code => sub { + my ($msg, $debug) = @_; + $c->log->debug($debug) if $debug; + $c->log->warn($msg); + die $msg,"\n"; + }, + ); if($reseller->status ne $old_status) { NGCP::Panel::Utils::Reseller::_handle_reseller_status_change($c, $reseller); @@ -338,18 +325,11 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d delete $c->session->{created_objects}->{contract}; delete $c->session->{edit_contract_id}; - if ($rtc_err) { - NGCP::Panel::Utils::Message::error( - c => $c, - desc => $c->loc(sprintf '%s (%s)', - 'Reseller successfully updated', $rtc_err), - ); - } else { - NGCP::Panel::Utils::Message::info( - c => $c, - desc => $c->loc('Reseller successfully updated'), - ); - } + + NGCP::Panel::Utils::Message::info( + c => $c, + desc => $c->loc('Reseller successfully updated'), + ); } catch($e) { NGCP::Panel::Utils::Message::error( c => $c, @@ -384,7 +364,7 @@ sub terminate :Chained('base') :PathPart('terminate') :Args(0) :Does(ACL) :ACLDe try { $c->model('DB')->txn_do(sub { my $old_status = $reseller->status; - my $old_enable_rtc = $reseller->rtc_user; + my $old_enable_rtc = !!$reseller->rtc_user; $reseller->update({ status => 'terminated' }); NGCP::Panel::Utils::Rtc::modify_reseller_rtc( old_resource => {status => $old_status, enable_rtc => $old_enable_rtc}, @@ -480,7 +460,7 @@ sub create_defaults :Path('create_defaults') :Args(0) :Does(ACL) :ACLDetachTo('/ call_data => 1, }, ); - $defaults{admins}->{login} = $defaults{resellers}->{name} =~ tr/A-Za-z0-9//cdr, + $defaults{admins}->{login} = $defaults{resellers}->{name} =~ tr/A-Za-z0-9//cdr; my $billing = $c->model('DB'); my %r; diff --git a/lib/NGCP/Panel/Role/API/Resellers.pm b/lib/NGCP/Panel/Role/API/Resellers.pm index 373da60b5d..e559bdf7ea 100644 --- a/lib/NGCP/Panel/Role/API/Resellers.pm +++ b/lib/NGCP/Panel/Role/API/Resellers.pm @@ -146,9 +146,8 @@ sub update_reseller { }); }; my $rtc_err = $@ // ''; - if ($rtc_err && $resource->{status} eq 'terminated') { - $self->error($c, HTTP_INTERNAL_SERVER_ERROR, - "Could not terminate rtc_user: $rtc_err"); + if ($rtc_err) { + $self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Could not modify rtc_user: $rtc_err"); return; }