Apache-Solr
view release on metacpan or search on metacpan
lib/Apache/Solr/JSON.pm view on Meta::CPAN
use Apache::Solr::Result ();
use HTTP::Request ();
use JSON ();
use Scalar::Util qw(blessed);
sub init($)
{ my ($self, $args) = @_;
$args->{format} ||= 'JSON';
$self->SUPER::init($args);
$self->{ASJ_json} = $args->{json} || JSON->new->utf8;
$self;
}
#---------------
sub json() {shift->{ASJ_json}}
#--------------------------
lib/Apache/Solr/JSON.pm view on Meta::CPAN
if(ref $body && ref $body ne 'SCALAR')
{ $body_ct ||= 'application/json; charset=utf-8';
$body = \$self->json->encode($body);
}
# Solr server 3.6.2 seems not to detect the JSON input from the
# body content, so requires this work-around
# https://solr.apache.org/guide/6_6/uploading-data-with-index-handlers.html#UploadingDatawithIndexHandlers-JSONUpdateConveniencePaths
$url =~ s!/update\?!/update/json?!;
$self->SUPER::request($url, $result, $body, $body_ct);
}
sub decodeResponse($)
{ my ($self, $resp) = @_;
# At least until Solr 4.0 response ct=text/plain while producing JSON
my $ct = $resp->content_type;
$ct =~ m/json/i
or error __x"Answer from solr server is not json but {type}", type => $ct;
lib/Apache/Solr/JSON.pm view on Meta::CPAN
+{ $command => { %$attrs, %$content } }
}
sub endpoint($@)
{ my ($self, $action, %args) = @_;
my $params = $args{params} ||= [];
if(ref $params eq 'HASH') { $params->{wt} ||= 'json' }
else { $args{params} = [ wt => 'json', @$params ] }
$self->SUPER::endpoint($action, %args);
}
1;
lib/Apache/Solr/XML.pm view on Meta::CPAN
ForceArray => [],
ContentKey => '_',
KeyAttr => [],
);
sub init($)
{ my ($self, $args) = @_;
$args->{format} ||= 'XML';
$self->SUPER::init($args);
$self->{ASX_simple} = XML::LibXML::Simple->new(@xml_decode_config);
$self;
}
#---------------
sub xmlsimple() {shift->{ASX_simple}}
#--------------------------
lib/Apache/Solr/XML.pm view on Meta::CPAN
#--------------------------
sub request($$;$$)
{ my ($self, $url, $result, $body, $body_ct) = @_;
if(blessed $body && $body->isa('XML::LibXML::Document'))
{ $body_ct ||= 'text/xml; charset=utf-8';
$body = \$body->toString;
}
$self->SUPER::request($url, $result, $body, $body_ct);
}
sub _cleanup_parsed($);
sub decodeResponse($)
{ my ($self, $resp) = @_;
$resp->content_type =~ m/xml/i
or return undef;
my $dec = $self->xmlsimple->XMLin(
lib/Apache/Solr/XML.pm view on Meta::CPAN
$doc;
}
sub endpoint($@)
{ my ($self, $action, %args) = @_;
my $params = $args{params} ||= [];
if(ref $params eq 'HASH') { $params->{wt} ||= 'xml' }
else { $args{params} = [ wt => 'xml', @$params ] }
$self->SUPER::endpoint($action => %args);
}
1;
( run in 0.614 second using v1.01-cache-2.11-cpan-4face438c0f )