ArangoDB2
view release on metacpan or search on metacpan
lib/ArangoDB2/Graph/EdgeDefinition.pm view on Meta::CPAN
package ArangoDB2::Graph::EdgeDefinition;
use strict;
use warnings;
use base qw(
ArangoDB2::Base
);
use Data::Dumper;
use JSON::XS;
use ArangoDB2::Graph::Edge;
my $JSON = JSON::XS->new->utf8;
# create
#
# POST /_api/gharial/graph-name/edge
sub create
{
my($self, $args) = @_;
# process request args
$args = $self->_build_args($args, ['from', 'name', 'to']);
# copy name to collection
my $name = $args->{collection} = delete $args->{name};
# make request
my $res = $self->arango->http->post(
$self->api_path('gharial', $self->graph->name, 'edge'),
undef,
$JSON->encode($args),
) or return;
# set name
$self->name($name);
# update parent graph object with response data
$self->graph->_build_self($res, ['edgeDefinitions', 'name', 'orphanCollections']);
# register instance
$self->graph->edgeDefinitionRegister->{$self->name} = $self;
return $self;
}
# delete
#
# DELETE /_api/gharial/graph-name/vertex/collection-name
sub delete
{
my($self, $args) = @_;
# process request args
$args = $self->_build_args($args, ['dropCollection', 'name']);
# make request
my $res = $self->arango->http->delete(
$self->api_path('gharial', $self->graph->name, 'edge', delete $args->{name}),
$args,
) or return;
# update parent graph object with response data
$self->graph->_build_self($res, ['edgeDefinitions', 'name', 'orphanCollections']);
# unregister instance
delete $self->graph->edgeDefinitionRegister->{$self->name};
return $res;
}
# dropCollection
#
# get/set dropCollection
sub dropCollection { shift->_get_set_bool('dropCollection', @_) }
# edge
#
# return an ArangoDB2::Graph::Edge object
sub edge
{
( run in 0.951 second using v1.01-cache-2.11-cpan-39bf76dae61 )