From 2b3536a0721a29b726e23b39ea13a3ed7cf585d8 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Wed, 14 Jul 2021 12:40:46 +0200 Subject: [PATCH] TT#121500 fix missing mos_data in /api/callists Change-Id: I4e958dd6ec05042c6ee18bbd7ed7186792a6be50 (cherry picked from commit 325903c14d7b90cca2e57f2a363f4c76d101bbe5) --- lib/NGCP/Panel/Role/API/CallLists.pm | 9 +-------- lib/NGCP/Panel/Utils/CallList.pm | 11 +++++------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/NGCP/Panel/Role/API/CallLists.pm b/lib/NGCP/Panel/Role/API/CallLists.pm index f48dc47574..23256198aa 100644 --- a/lib/NGCP/Panel/Role/API/CallLists.pm +++ b/lib/NGCP/Panel/Role/API/CallLists.pm @@ -18,14 +18,7 @@ use NGCP::Panel::Utils::API::Calllist qw(); sub _item_rs { my ($self, $c) = @_; - my $item_rs = $c->model('DB')->resultset('cdr')->search_rs( - undef, - { - join => 'cdr_mos_data', - '+select' => [qw/cdr_mos_data.mos_average cdr_mos_data.mos_average_packetloss cdr_mos_data.mos_average_jitter cdr_mos_data.mos_average_roundtrip/], - '+as' => [qw/mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/], - } - ); + my $item_rs = $c->model('DB')->resultset('cdr'); if($c->user->roles eq "admin") { } elsif($c->user->roles eq "reseller") { diff --git a/lib/NGCP/Panel/Utils/CallList.pm b/lib/NGCP/Panel/Utils/CallList.pm index 58c1c68647..e9bc5b9f2c 100644 --- a/lib/NGCP/Panel/Utils/CallList.pm +++ b/lib/NGCP/Panel/Utils/CallList.pm @@ -50,13 +50,12 @@ sub process_cdr_item { $params //= $c->req->params; - foreach my $field (qw/id call_id call_type mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/) { - if ($item->can('has_column') && $item->has_column($field)) { - $resource->{$field} = $item->get_column($field); - } elsif ($item->can($field)) { - $resource->{$field} = $item->$field; - } + map { $resource->{$_} = $item->get_column($_); } qw/id call_id call_type/; + if (my $mos_data = $item->cdr_mos_data) { + my %mos_data_res = $mos_data->get_inflated_columns; + map { $resource->{$_} = $mos_data_res{$_}; } qw/mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/; } + my $intra = 0; if($item->source_user_id && $item->source_account_id == $item->destination_account_id) { $resource->{intra_customer} = JSON::true;