ArangoDB2
view release on metacpan or search on metacpan
lib/ArangoDB2/Graph/Vertex.pm view on Meta::CPAN
package ArangoDB2::Graph::Vertex;
use strict;
use warnings;
use base qw(
ArangoDB2::Base
);
use Data::Dumper;
use JSON::XS;
my $JSON = JSON::XS->new->utf8;
# create
#
# POST /_api/gharial/graph-name/vertex/collection-name
sub create
{
my($self, $data, $args) = @_;
# require data
die "Invlalid args"
unless ref $data eq 'HASH';
# process args
$args = $self->_build_args($args, ['waitForSync']);
# make request
my $res = $self->arango->http->post(
$self->api_path('gharial', $self->graph->name, $self->_class, $self->collection->name),
$args,
$JSON->encode($data),
) or return;
# get response data
$res = $res->{$self->_class}
or return;
# copy response data to instance
$self->_build_self($res, []);
# set data pointer to passed in doc, which will
# be updated by future object ops
$self->{data} = $data;
# register object
my $register = $self->_register;
$self->collection->$register->{$self->name} = $self;
return $self;
}
# delete
#
# DELETE /system/gharial/graph-name/vertex/collection-name/vertex-key
sub delete
{
my($self, $args) = @_;
# process args
$args = $self->_build_args($args, ['name', 'waitForSync']);
# make request
my $res = $self->arango->http->delete(
$self->api_path('gharial', $self->graph->name, $self->_class, $self->collection->name, delete $args->{name}),
) or return;
# empty data
if (my $data = $self->data) {
%$data = ();
}
# unregister object
my $register = $self->_register;
delete $self->collection->$register->{$self->name};
return $res;
}
# get
#
( run in 0.812 second using v1.01-cache-2.11-cpan-39bf76dae61 )