ArangoDB2

 view release on metacpan or  search on metacpan

lib/ArangoDB2/Traversal.pm  view on Meta::CPAN

package ArangoDB2::Traversal;

use strict;
use warnings;

use base qw(
    ArangoDB2::Base
);

use Data::Dumper;
use JSON::XS;

my $JSON = JSON::XS->new->utf8;

my @PARAMS = qw(
    direction edgeCollection expander filter graphName init itemOrder maxDepth
    maxIterations minDepth order sort startVertex strategy uniqueness visitor
);

# direction
#
# get/ set direction
sub direction { shift->_get_set('direction', @_) }

# edgeCollection
#
# get/ set edgeCollection
sub edgeCollection { shift->_get_set('edgeCollection', @_) }

# execute
#
# POST /_api/traversal
sub execute
{
    my($self, $args) = @_;
    # process request args
    $args = $self->_build_args($args, \@PARAMS);
    # if neither edgeCollection or graphName is set then
    # use the current graph name
    $args->{graphName} = $self->graph->name
        unless defined $args->{graphName}
        or defined $args->{edgeCollection};
    # make request
    return $self->arango->http->post(
        $self->api_path('traversal'),
        undef,
        $JSON->encode($args),
    );
}

# expander
#
# get/ set expander
sub expander { shift->_get_set('expander', @_) }

# filter
#
# get/ set filter
sub filter { shift->_get_set('filter', @_) }

# graphName
#
# get/ set graphName
sub graphName { shift->_get_set('graphName', @_) }

# init
#
# get/ set init
sub init { shift->_get_set('init', @_) }

# itemOrder
#
# get/ set itemOrder



( run in 1.601 second using v1.01-cache-2.11-cpan-39bf76dae61 )