33 lines
936 B
33 lines
936 B
package Test::ForceArray;
|
|
|
|
use strict;
|
|
use warnings;
|
|
use Exporter qw'import';
|
|
|
|
our @EXPORT = qw//;
|
|
our @EXPORT_OK = qw/&get_embedded_item &get_embedded_forcearray &get_id_from_hal/;
|
|
our %EXPORT_TAGS = (
|
|
DEFAULT => [qw/&get_embedded_item &get_embedded_forcearray &get_id_from_hal/],
|
|
all => [qw/&get_embedded_item &get_embedded_forcearray &get_id_from_hal/]
|
|
);
|
|
|
|
sub get_embedded_item{
|
|
my($hal,$name) = @_;
|
|
my $embedded = $hal->{_embedded}->{'ngcp:'.$name} ;
|
|
return 'ARRAY' eq ref $embedded ? $embedded->[0] : $embedded ;
|
|
}
|
|
|
|
sub get_embedded_forcearray{
|
|
my($hal,$name) = @_;
|
|
my $embedded = $hal->{_embedded}->{'ngcp:'.$name} ;
|
|
return 'ARRAY' eq ref $embedded ? $embedded : [ $embedded ];
|
|
}
|
|
|
|
sub get_id_from_hal{
|
|
my($hal,$name) = @_;
|
|
my $embedded = get_embedded_item($hal,$name);
|
|
(my ($id)) = $embedded->{_links}{self}{href} =~ m!${name}/([0-9]*)$! if $embedded;
|
|
return $id;
|
|
}
|
|
|
|
1; |