NAME

Catmandu::FedoraCommons::Response - Perl model for generic Fedora Commons REST API responses

SYNOPSIS

use Catmandu::FedoraCommons;

my $fedora = Catmandu::FedoraCommons->new('http://localhost:8080/fedora','fedoraAdmin','fedoraAdmin');

my $result = $fedora->findObjects(terms=>'*');

die $resut->error unless $result->is_ok;

my $obj = $result->parse_content;

$result->is_ok;
$result->error;
$result->raw;
$result->content_type;
$result->length;
$result->date;
$result->parse_content();
$result->parse_content($my_model);

DESCRIPTION

A Catmandu::FedoraCommons::Response gets returned for every Catmandu::FedoraCommons method. This response contains the raw HTTP content of a Fedora Commons request and can also be used to parse XML responses into Perl objects using the parse_content function. For more information on the Perl objects see the information in the Catmandu::FedoraCommons::Model packages.

METHODS

is_ok()

Returns true when the result Fedora Commons response contains no errors.

error()

Returns the error message of the Fedora Commons response if available.

parse_content($model)

Returns a Perl representation of the Fedora Commons response. Optionally a model object can be provided that implements a $obj->parse($bytes) method and returns a Perl object. If no model is provided then default models from the Catmandu::FedoraCommons::Model namespace are used.

Example:

package MyParser;

sub new {
    my $class = shift;
    return bless {} , $class;
}

sub parse {
    my ($self,$bytes) = @_;
    ...
    return $perl
}

package main;

my $fedora = Catmandu::FedoraCommons->new('http://localhost:8080/fedora','fedoraAdmin','fedoraAdmin');

my $result = $fedora->findObjects(terms=>'*');

my $perl = $result->parse_content(MyParser->new);

raw()

Returns the raw Fedora Commons response as a string.

content_type()

Returns the Content-Type of the Fedora Commons response.

length()

Returns the byte length of the Fedora Commons response.

date()

Returns the date of the Fedora Commons response.

AUTHORS

  • Patrick Hochstenbach, <patrick.hochstenbach at ugent.be>

SEE ALSO

Catmandu::Model::findObjects, Catmandu::Model::getObjectHistory, Catmandu::Model::getObjectPrifule, Catmandu::Model::listDatastreams, Catmandu::Model::listMethods