ArangoDB2
view release on metacpan or search on metacpan
lib/ArangoDB2/Graph/Vertex.pm view on Meta::CPAN
# if data is defined already then empty and copy data from response
if (my $data = $self->data) {
%$data = ();
$data->{$_} = $res->{$_} for keys %$res;
}
# otherwise use res for data
else {
$self->data($res);
}
# register object
my $register = $self->_register;
$self->collection->$register->{$self->name} = $self;
return $self;
}
# keepNull
#
# get/set keepNull
sub keepNull { shift->_get_set_bool('keepNull', @_) }
# update
#
# PATCH /system/gharial/graph-name/vertex/collection-name/vertex-key
sub update
{
my($self, $data, $args) = @_;
# require data
die "Invalid args"
unless ref $data eq 'HASH';
# process args
$args = $self->_build_args($args, ['name', 'keepNull', 'waitForSync']);
# make request
my $res = $self->arango->http->patch(
$self->api_path('gharial', $self->graph->name, $self->_class, $self->collection->name, delete $args->{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, []);
# if data is defined then copy patched data
if (my $orig_data = $self->data) {
$orig_data->{$_} = $data->{$_} for keys %$data;
}
# otherwise use passed data
else {
$self->data($data);
}
# register object
my $register = $self->_register;
$self->collection->$register->{$self->name} = $self;
return $self;
}
# replace
#
# PUT /system/gharial/graph-name/vertex/collection-name/vertex-key
sub replace
{
my($self, $data, $args) = @_;
# require data
die "Invlalid args"
unless ref $data eq 'HASH';
# process args
$args = $self->_build_args($args, ['name', 'waitForSync']);
# make request
my $res = $self->arango->http->put(
$self->api_path('gharial', $self->graph->name, $self->_class, $self->collection->name, delete $args->{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, []);
# if data is defined then replace data
if (my $orig_data = $self->data) {
%$orig_data = ();
$orig_data->{$_} = $data->{$_} for keys %$data;
}
# otherwise use passed data
else {
$self->data($data);
}
# register object
my $register = $self->_register;
$self->collection->$register->{$self->name} = $self;
return $self;
}
# waitForSync
#
# get/set waitForSync
sub waitForSync { shift->_get_set_bool('waitForSync', @_) }
# _class
#
# internal name for class
sub _class { 'vertex' }
# _register
#
# internal name for object index
sub _register { 'vertices' }
1;
__END__
=head1 NAME
ArangoDB2::Graph::Vertex - ArangoDB vertex API methods
=head1 DESCRIPTION
( run in 0.627 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )