MT#59434 always take aliases from voip_numbers

in case the DB shows discrepancy because of missing
primary provisioning.voip_dbaliases records, align with
legacy panel behaviour and also take the restapi
aliases list from voip_numbers, instead of voip_dbaliases.

.. while trying to keep the performance gain from
https://gerrit.mgm.sipwise.com/c/ngcp-panel/+/65086.

Change-Id: Ibd7f8c8bc6a39ae2c31b4e8818080674ab77d66c
mr12.3
Rene Krenn 2 years ago
parent 80f8b1da0b
commit 740bb764e5

@ -131,18 +131,27 @@ sub resource_from_item {
$resource{primary_number}->{number_id} = int($item->primary_number->id);
}
@{$resource{alias_numbers}} = $item->voip_numbers->search({
-or => [
'voip_dbalias.is_primary' => 0,
'voip_dbalias.is_primary' => undef,
],
},
{
select => ['cc','ac','sn','id',\'COALESCE(voip_dbalias.is_devid,0)'],
as => ['cc','ac','sn','number_id','is_devid'],
join => 'voip_dbalias',
result_class => 'DBIx::Class::ResultClass::HashRefInflator',
})->all;
my @aliases = ();
if($item->voip_numbers->first) {
foreach my $n ($item->voip_numbers->search(undef,{
prefetch => 'voip_dbalias',
})->all) {
my $alias = {
cc => $n->cc,
ac => $n->ac,
sn => $n->sn,
number_id => int($n->id),
};
next if ($resource{primary_number} && $resource{primary_number}->{number_id} == $alias->{number_id});
$alias->{is_devid} = 0;
if (defined $n->voip_dbalias) {
$alias->{is_devid} = $n->voip_dbalias->is_devid;
}
$alias->{is_devid} = bool $alias->{is_devid};
push(@aliases, $alias);
}
}
$resource{alias_numbers} = \@aliases;
$pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'display_name',

Loading…
Cancel
Save