ArangoDB2
view release on metacpan or search on metacpan
lib/ArangoDB2/Document.pm view on Meta::CPAN
package ArangoDB2::Document;
use strict;
use warnings;
use base qw(
ArangoDB2::Base
);
use Data::Dumper;
use JSON::XS;
my $JSON = JSON::XS->new->utf8;
# create
#
# POST /_api/document
#
# Query Parameters
#
# collection: The collection name.
# createCollection: If this parameter has a value of true or yes, then the collection is created if it does not yet exist. Other values will be ignored so the collection must be present for the operation to succeed.
#
# return self on success, undef on failure
sub create
{
my($self, $data, $args) = @_;
# require data
die "Invlalid args"
unless ref $data eq 'HASH';
# process args
$args = $self->_build_args($args, ['createCollection','waitForSync']);
# set collection name as query param
$args->{collection} = $self->collection->name;
# make request
my $res = $self->arango->http->post(
$self->api_path($self->_class),
$args,
$JSON->encode($data),
) 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
my $register = $self->_register;
$self->collection->$register->{$self->name} = $self;
return $self;
}
# createCollection
#
# get/set createCollection
sub createCollection { shift->_get_set_bool('createCollection', @_) }
# delete
#
# DELETE /_api/document/{document-handle}
sub delete
{
my($self, $args) = @_;
# process args
$args = $self->_build_args($args, ['policy', 'rev', 'waitForSync']);
# make request
my $res = $self->arango->http->delete(
$self->api_path($self->_class, $self->collection->name, $self->name),
$args,
) or return;
# empty data
( run in 1.389 second using v1.01-cache-2.11-cpan-39bf76dae61 )