From 21b1774d40d3e055e6edfc576ef0cf4aad559221 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 10 May 2006 14:48:25 +0000 Subject: [PATCH] r577@llin: dpavlin | 2006-05-10 16:51:07 +0200 fixed add_link and wrote tests for it git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@459 07558da8-63fa-0310-ba24-9fe276d99e06 --- Makefile.PL | 1 + lib/WebPAC/Output/Estraier.pm | 23 +++++++++++------------ t/7-est.t | 7 +++++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index 91093d0..6ac01ac 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -29,6 +29,7 @@ WriteMakefile( 'Biblio::Isis' => 0.13, 'MARC::Fast' => 0.02, 'Search::Estraier' => 0.06, + 'List::Util' => 0, }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'WebPAC-* pod2html Makefile tags' }, diff --git a/lib/WebPAC/Output/Estraier.pm b/lib/WebPAC/Output/Estraier.pm index a4f1847..1e645de 100644 --- a/lib/WebPAC/Output/Estraier.pm +++ b/lib/WebPAC/Output/Estraier.pm @@ -10,6 +10,7 @@ use Encode qw/from_to/; use Data::Dumper; use LWP; use URI::Escape; +use List::Util qw/first/; =head1 NAME @@ -216,13 +217,14 @@ sub add_link { my $args = {@_}; my $log = $self->_get_logger; - my @labels = $self->master( action => 'nodelist' ); + my $node = first { $_->{name} eq $args->{to} } $self->master( action => 'nodelist' ); - $log->debug("got labels: ", join("|", @labels)); + if (! $node) { + $log->warn("can't find node $args->{to}, skipping link creaton"); + return; + } - @labels = grep(/^$args->{to}\t/, @labels); - my $label = shift @labels; - (undef,$label) = split(/\t/, $label) if ($label); + my $label = $node->{label}; if (! $label) { $log->warn("can't find label for $args->{to}, skipping link creaton"); @@ -231,13 +233,10 @@ sub add_link { $log->debug("using label $label for $args->{to}"); - return $self->estcall( - validate => 'node', - action => '_set_link', - rest_url => $self->{masterurl} . '/node/' . $args->{from} . '/_set_link' , - url => $self->{masterurl} . '/node/' . $args->{to}, - label => $label, - credit => $args->{credit}, + return $self->{db}->set_link( + $self->{masterurl} . '/node/' . $args->{to}, + $label, + $args->{credit}, ); } diff --git a/t/7-est.t b/t/7-est.t index d47dd43..7014b94 100755 --- a/t/7-est.t +++ b/t/7-est.t @@ -2,7 +2,7 @@ use strict; -use Test::More tests => 10; +use Test::More tests => 13; use Test::Exception; use Cwd qw/abs_path/; use File::Temp qw/tempdir/; @@ -63,7 +63,10 @@ ok(my @res = $est_s->search( cmp_ok(($#res + 1), '==', $max, "$max hits"); -diag Dumper(\@res); +ok($est->master( action => 'nodeadd', name => 'webpac2test_link', label => 'test' ), "nodeadd"); + +ok($est->add_link( from => 'webpac2test', to => 'webpac2test_link', credit => 42 ), "add_link"); ok($est->master( action => 'nodedel', name => 'webpac2test' ), "nodedel"); +ok($est->master( action => 'nodedel', name => 'webpac2test_link' ), "nodedel"); -- 2.20.1