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.290 second using v1.01-cache-2.11-cpan-26ccb49234f )