TT#33391 Adapt process_cdr_item to special conversation cdr item

Change-Id: I68881fab706a8c69f6106a16f4cd56fe8d620145
changes/99/19399/2
Irina Peshinskaya 7 years ago
parent 3a1d30bee6
commit 1877770f94

@ -300,7 +300,7 @@ sub GET :Allow {
"subscriber_id=".$owner->{subscriber}->id :
"customer_id=".$owner->{customer}->id;
for my $item ($items->all) {
push @embedded, $self->hal_from_item($c, $item, $owner, $form, $href_data);
push @embedded, $self->hal_from_item($c, $item, $form, { 'owner' => $owner });
push @links, Data::HAL::Link->new(
relation => 'ngcp:'.$self->resource_name,
href => sprintf('/%s%d?%s', $c->request->path, $item->id, $href_data),

@ -916,10 +916,10 @@ sub hal_from_item {
if(!$form){
($form) = $self->get_form($c);
}
my $resource = $self->resource_from_item($c, $item, $form);
$resource = $self->process_hal_resource($c, $item, $resource, $form);
my $resource = $self->resource_from_item($c, $item, $form, $params);
$resource = $self->process_hal_resource($c, $item, $resource, $form, $params);
return unless $resource;
my $links = $self->hal_links($c, $item, $resource, $form) // [];
my $links = $self->hal_links($c, $item, $resource, $form, $params) // [];
my $hal = Data::HAL->new(
links => [
Data::HAL::Link->new(
@ -935,7 +935,7 @@ sub hal_from_item {
href => sprintf(
"%s%s",
$self->dispatch_path,
$self->get_item_id($c, $item, undef, undef, { purpose => 'hal_links_href' })
$self->get_item_id($c, $item, undef, undef, { purpose => 'hal_links_href', 'item_hal_params' => $params })
),
),
Data::HAL::Link->new(
@ -943,7 +943,7 @@ sub hal_from_item {
href => sprintf(
"/api/%s/%s",
$self->resource_name,
$self->get_item_id($c, $item, undef, undef, { purpose => 'hal_links_href' })
$self->get_item_id($c, $item, undef, undef, { purpose => 'hal_links_href', 'item_hal_params' => $params })
)
),
@$links,

@ -89,5 +89,21 @@ sub resource_from_item {
return $resource;
}
sub get_item_id{
my($self, $c, $item, $resource, $form, $params) = @_;
my $id = $item->id;
if(('HASH' eq ref $params) && 'hal_links_href' eq $params->{purpose}){
my $item_hal_params = $params->{item_hal_params};
my $owner = $item_hal_params->{owner};
my $href_data = $owner->{subscriber} ?
"subscriber_id=".$owner->{subscriber}->id :
"customer_id=".$owner->{customer}->id;
return $id.'?'.$href_data;
}
return $id;
}
1;
# vim: set tabstop=4 expandtab:

@ -49,8 +49,10 @@ 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->has_column_loaded($field)) {
if ($item->can('has_column_loaded') && $item->has_column_loaded($field)) {
$resource->{$field} = $item->get_column($field);
} elsif ($item->can($field)) {
$resource->{$field} = $item->$field;
}
}
my $intra = 0;

Loading…
Cancel
Save