Catmandu-MediaHaven

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        my $mh = Catmandu::MediaHaven->new(
                        url      => '...' ,
                        username => '...' ,
                        password => '...');
    
        my $result = $mh->search('nature', start => 0 , num => 100);
    
        die "search failed" unless defined($result);
    
        for my $res (@{$result->{mediaDataList}}) {
            my $id = $res->{fragmentId};
            my $date = $res->{data};
    
            print "$id $date\n";
        }
    
        my $record = $mh->record('q2136s817');
        my $date   = $record->{date};
    
        print "q2136s817 $date\n";
    

lib/Catmandu/MediaHaven.pm  view on Meta::CPAN

    my $mh = Catmandu::MediaHaven->new(
                    url      => '...' ,
                    username => '...' ,
                    password => '...');

    my $result = $mh->search('nature', start => 0 , num => 100);

    die "search failed" unless defined($result);

    for my $res (@{$result->{mediaDataList}}) {
        my $id = $res->{fragmentId};
        my $date = $res->{data};

        print "$id $date\n";
    }

    my $record = $mh->record('q2136s817');
    my $date   = $record->{date};

    print "q2136s817 $date\n";

lib/Catmandu/MediaHaven.pm  view on Meta::CPAN


    $self->log->info("edit record $id");

    my $record = $self->record($id);

    unless ($record) {
        $self->log->error("no such record $id");
        return undef;
    }

    my $fragmentId = $record->{fragmentId};

    my @param;

    for (@values) {
        push @param , 'value' , $_;
    }

    my $res = $self->_rest_post("$fragmentId/$field", @param);

    return $res;
}

=head2 export($id, $callback)

Export the binary content of a record from the MediaHaven server. The callback
will retrieve a stream of data when the download is available,

=cut

lib/Catmandu/MediaHaven.pm  view on Meta::CPAN

    my ($self,@param) = @_;

    my $media_url = $self->_rest_base . '?';

    $media_url .= join("&",@param);

    $self->_get_json($media_url);
}

sub _rest_post {
    my ($self,$fragment,@param) = @_;

    my $media_url = $self->_rest_base .
                    '/' .
                    $fragment;

    $self->_post_json($media_url,\@param);
}

=head1 MODULES

L<Catmandu::Importer::MediaHaven>

L<Catmandu::Store::File::MediaHaven>

lib/Catmandu/Store/File/MediaHaven/Searcher.pm  view on Meta::CPAN

    };
}

sub hit2rec {
    my ($self,$hit) = @_;

    if ($self->bag->store->id_fixer) {
        return $self->bag->store->id_fixer->fix($hit);
    }
    else {
        my $id = $hit->{fragmentId};
        return +{_id => $id};
    }
}

sub slice {
    my ($self, $start, $total) = @_;
    $start //= 0;
    $self->new(
        bag   => $self->bag,
        query => $self->query,

t/Catmandu-Exporter-MediaHaven.t  view on Meta::CPAN

                        json_key => 'description');

    ok $exporter , 'got an exporter';

    ok $exporter->mediahaven , 'got a connection';

    my $res = $exporter->mediahaven->search();

    ok $res , 'got search result';

    my $fragmentId = $res->{mediaDataList}->[1]->{fragmentId};

    ok $fragmentId , "got one record $fragmentId";

    my $record = { _id => $fragmentId , date => time , test => [qw(1 2 3)]};

    ok $exporter->add($record) , "updated record $fragmentId";

    ok $exporter->commit , "can do a commit";

    sleep(20);
    
    my $record2 = $exporter->mediahaven->record($fragmentId);

    ok $record2 , 'got the record back';

    my $description = $record2->{description};

    ok $description , "got a description: $description";

    my $json_rec = decode_json $description;

    ok $json_rec  , "got json";

t/Catmandu-MediaHaven.t  view on Meta::CPAN


    ok $res->{totalNrOfResults} >= 0 , 'got more than one answer';

    my $num_of_result = $res->{totalNrOfResults};

    my $result_list = $res->{mediaDataList};

    is int(@$result_list) , $num_of_result , 'got enough results';

    if ($num_of_result) {
        my $id = $result_list->[0]->{fragmentId};

        ok $id , 'got an record identifier';

        $res = $mh->record($id);

        ok $res , 'got a record result';

        is ref($res) , 'HASH' , 'record result is a hash';

        is $res->{fragmentId} , $id , 'got the correct record';
    }
}

done_testing;



( run in 1.050 second using v1.01-cache-2.11-cpan-364913b4093 )