#!/usr/bin/perl -w
###########################################
# router-search - find all routing paths
# Mike Schilli, 2014 (m@perlmeister.com)
###########################################
use strict;
use REST::Neo4p;

REST::Neo4p->connect(
  "http://127.0.0.1:7474" ) or die;

my $query_string = 
  "START n=node:router_index(name='guest')
    MATCH p = 
    (n)-[r:gateway*]->({name:'modem'})
   RETURN p";

my $query = REST::Neo4p::Query->new(
  $query_string );
$query->execute( ) or die $!;

while( my $row = $query->fetch() ) {
  my $path  = $row->[0];
  my @nodes = $path->nodes();
  my @rels  = $path->relationships();

  for my $node ( @nodes ) {
    print $node->get_property( "name" );
    if( @rels ) {
      my $rel = shift @rels;
      print "->";
    }
  }
  print "\n";
}    
