TT#34567 Consider mandatory params in collection navigation links

Change-Id: I96dbccd953567699b6f4959ce6d9f146e6ce343e
changes/00/20300/1
Irina Peshinskaya 7 years ago
parent 3c815a76da
commit 541f79e333

@ -1119,6 +1119,11 @@ sub hal_links {
return [];
}
sub get_mandatory_params {
my ($self, $c, $href_type, $item, $resource, $params) = @_;
return '';
}
sub get_form {
my($self, $c) = @_;
return ;

@ -57,6 +57,12 @@ sub validate_request {
return 1;
}
sub get_mandatory_params {
my ($self, $c, $href_type, $item, $resource, $params) = @_;
my($owner,$type,$parameter,$value) = $self->check_owner_params($c);
return $parameter.'='.$value;
}
sub get_item_id{
my($self, $c, $item, $resource, $form, $params) = @_;
my $id = int($item->id);

@ -205,6 +205,8 @@ sub get {
my (@embedded, @links);
my ($form) = $self->get_form($c);
my @items = 'ARRAY' eq ref $items ? @$items : $items->all;
my $href_params = $self->get_mandatory_params($c, 'collection') // '';
$href_params and $href_params = '&'.$href_params;
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.
@ -222,12 +224,12 @@ sub get {
templated => true,
),
Data::HAL::Link->new(relation => 'profile', href => 'http://purl.org/sipwise/ngcp-api/'),
Data::HAL::Link->new(relation => 'self', href => sprintf('/%s?page=%s&rows=%s', $c->request->path, $page, $rows));
Data::HAL::Link->new(relation => 'self', href => sprintf('/%s?page=%s&rows=%s%s', $c->request->path, $page, $rows, $href_params));
if(($total_count / $rows) > $page ) {
push @links, Data::HAL::Link->new(relation => 'next', href => sprintf('/%s?page=%d&rows=%d', $c->request->path, $page + 1, $rows));
push @links, Data::HAL::Link->new(relation => 'next', href => sprintf('/%s?page=%d&rows=%d%s', $c->request->path, $page + 1, $rows, $href_params));
}
if($page > 1) {
push @links, Data::HAL::Link->new(relation => 'prev', href => sprintf('/%s?page=%d&rows=%d', $c->request->path, $page - 1, $rows));
push @links, Data::HAL::Link->new(relation => 'prev', href => sprintf('/%s?page=%d&rows=%d%s', $c->request->path, $page - 1, $rows, $href_params));
}
my $hal = Data::HAL->new(

@ -72,6 +72,11 @@ has 'use_data_callbacks' => (
isa => 'Bool',
default => sub { 0 },
);
has 'keep_db_data' => (
is => 'rw',
isa => 'Bool',
default => sub { 0 },
);
has 'FLAVOUR' => (
is => 'rw',
isa => 'Str',
@ -626,7 +631,9 @@ sub load_collection_data{
$self->load_data_from_script($collection_name);
}
if(! ( $self->collection_id_exists($collection_name) ) ){
$self->clear_db(undef,undef,[$collection_name]);
if(! ( $self->keep_db_data ) ){
$self->clear_db(undef,undef,[$collection_name]);
}
$self->load_db(undef,[$collection_name]);
}
}
@ -794,9 +801,6 @@ sub create{
sub clear_test_data_all{
my $self = shift;
my($force_delete) = @_;
if (!$self->test_machine) {
return;
}
if($self->test_machine->cache_data && !$force_delete){
store {loaded => $self->loaded, created => $self->created}, $self->data_cache_file;
}else{

Loading…
Cancel
Save