r577@llin: dpavlin | 2006-05-10 16:51:07 +0200
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 10 May 2006 14:48:25 +0000 (14:48 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 10 May 2006 14:48:25 +0000 (14:48 +0000)
 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
lib/WebPAC/Output/Estraier.pm
t/7-est.t

index 91093d0..6ac01ac 100644 (file)
@@ -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' },
index a4f1847..1e645de 100644 (file)
@@ -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},
        );
 }
 
index d47dd43..7014b94 100755 (executable)
--- 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");