in lib/Search/Elasticsearch/Role/Cxn.pm [454:480]
sub _munge_elasticsearch_exception {
#===================================
my ( $self, $body ) = @_;
return $body unless ref $body eq 'HASH';
my $error = $body->{error} || return;
return $error unless ref $error eq 'HASH';
my $root_causes = $error->{root_cause} || [];
unless (@$root_causes) {
my $msg = "[" . $error->{type} . "] " if $error->{type};
$msg .= $error->{reason} if $error->{reason};
return $msg;
}
my $json = $self->serializer;
my @msgs;
for (@$root_causes) {
my %cause = (%$_);
my $msg
= "[" . ( delete $cause{type} ) . "] " . ( delete $cause{reason} );
if ( keys %cause ) {
$msg .= ", with: " . $json->encode( \%cause );
}
push @msgs, $msg;
}
return ( join ", ", @msgs );
}