# prints the result of an API GET call returning an array
# and to have the results key of the API call defined.
sub print_api_list {
- my ($props_to_print, $data, $returninfo) = @_;
+ my ($data, $result_schema, $props_to_print) = @_;
- die "can only print array result" if $returninfo->{type} ne 'array';
+ die "can only print object lists\n"
+ if !($result_schema->{type} eq 'array' && $result_schema->{items}->{type} eq 'object');
- my $returnprops = $returninfo->{items}->{properties};
+ my $returnprops = $result_schema->{items}->{properties};
if (!defined($props_to_print)) {
$props_to_print = [ sort keys %$returnprops ];
return if !scalar(@$data);
my $item_type = $result_schema->{items}->{type};
if ($item_type eq 'object') {
- print_api_list(undef, $data, $result_schema);
+ print_api_list($data, $result_schema);
} else {
foreach my $entry (@$data) {
print data_to_text($entry) . "\n";
my $res = $class->cli_handler($cmd_str, $name, $cmd_args, $arg_param, $uri_param, $read_password_func, $param_mapping_func);
if (defined $outsub) {
- my $returninfo = $class->map_method_by_name($name)->{returns};
- $outsub->($res, $returninfo);
+ my $result_schema = $class->map_method_by_name($name)->{returns};
+ $outsub->($res, $result_schema);
}
};
my $res = $class->cli_handler($name, $name, \@ARGV, $arg_param, $uri_param, $read_password_func, $param_mapping_func);
if (defined $outsub) {
- my $returninfo = $class->map_method_by_name($name)->{returns};
- $outsub->($res, $returninfo);
+ my $result_schema = $class->map_method_by_name($name)->{returns};
+ $outsub->($res, $result_schema);
}
};