Dezi-Client
view release on metacpan or search on metacpan
lib/Dezi/Client.pm view on Meta::CPAN
my $uri = $self->{server};
if ( $args{server_params} ) {
$self->{server_params}
= URI::Query->new( delete $args{server_params} );
$uri .= '?' . $self->{server_params};
}
my $resp = $self->{ua}->get($uri);
if ( !$resp->is_success ) {
croak $resp->status_line;
}
my $paths = from_json( $resp->decoded_content );
if ( !$resp->is_success
or !$paths
or !$paths->{search}
or !$paths->{index} )
{
croak "Bad response from server $self->{server}: "
. $resp->status_line . " "
. $resp->decoded_content;
}
$self->{search_uri} = $paths->{search};
$self->{index_uri} = $paths->{index};
$self->{commit_uri} = $paths->{commit};
$self->{rollback_uri} = $paths->{rollback};
$self->{fields} = $paths->{fields};
$self->{facets} = $paths->{facets};
}
$self->{_creds} = {
lib/Dezi/Response.pm view on Meta::CPAN
if ( @_ == 1 ) {
return $class->$orig( http_response => $_[0] );
}
else {
return $class->$orig(@_);
}
};
sub BUILD {
my $self = shift;
my $json = from_json( $self->http_response->decoded_content );
# inflate json into self, except results
for my $attr ( keys %$json ) {
next if $attr eq 'results';
# set in hash directly if we have no method (yet)
if ( $self->can($attr) ) {
$self->$attr( $json->{$attr} );
}
else {
( run in 0.404 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )