From 8eec82f1bb608fa64fcce2c41ebc44964981e4a9 Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Mon, 2 Apr 2018 20:22:00 +0200 Subject: [PATCH] TT#34567 Use already created hal links for embedded and Location Change-Id: I3e32ecb89cc9b6966dbe5caa2fa7a26054c7b23b --- lib/NGCP/Panel/Role/API.pm | 8 ++------ lib/NGCP/Panel/Role/Entities.pm | 12 +----------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/lib/NGCP/Panel/Role/API.pm b/lib/NGCP/Panel/Role/API.pm index a6d525cd0d..26ca4832b9 100644 --- a/lib/NGCP/Panel/Role/API.pm +++ b/lib/NGCP/Panel/Role/API.pm @@ -1382,12 +1382,8 @@ sub return_representation_post{ $response //= HTTP::Response->new(HTTP_OK, undef, HTTP::Headers->new( $hal->http_headers, ), $hal->as_json); - $c->response->header( - Location => sprintf('/%s%s', - $c->request->path, - $self->get_item_id( - $c,$item, undef, undef, { purpose => 'hal_links_href' }) - )); + my ($self_hal_link) = grep { $_->relation->as_string eq 'self' } @{$hal->links}; + $c->response->header( Location => $self_hal_link->href->as_string ); } if ('minimal' eq $preference || !$response) { diff --git a/lib/NGCP/Panel/Role/Entities.pm b/lib/NGCP/Panel/Role/Entities.pm index c9992fef43..ac34e00108 100644 --- a/lib/NGCP/Panel/Role/Entities.pm +++ b/lib/NGCP/Panel/Role/Entities.pm @@ -207,17 +207,7 @@ sub get { my @items = 'ARRAY' eq ref $items ? @$items : $items->all; for my $item (@items) { push @embedded, $self->hal_from_item($c, $item, $form, {}); - #TODO: replace hal_links_href by separated method that utilize get_item_id. - push @links, Data::HAL::Link->new( - relation => 'ngcp:'.$self->resource_name, - href => $self->apply_mandatory_parameters($c, 'item', - sprintf( - '/%s%s', - $c->request->path, - $self->get_item_id($c, $item) - ), $item, $resource - ), - ); + push @links, grep { $_->relation->_original eq 'ngcp:'.$self->resource_name } @{$embedded[-1]->links}; } push @links, Data::HAL::Link->new(