ArangoDB2

 view release on metacpan or  search on metacpan

lib/ArangoDB2/Graph/VertexCollection.pm  view on Meta::CPAN

package ArangoDB2::Graph::VertexCollection;

use strict;
use warnings;

use base qw(
    ArangoDB2::Base
);

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

use ArangoDB2::Graph::Vertex;

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



# create
#
# POST /_api/gharial/graph-name/vertex
sub create
{
    my($self, $args) = @_;
    # process request args
    $args = $self->_build_args($args, ['name']);
    # make request
    my $res = $self->arango->http->post(
        $self->api_path('gharial', $self->graph->name, 'vertex'),
        undef,
        $JSON->encode({collection => $args->{name}}),
    ) or return;
    # set name
    $self->name($args->{name});
    # update parent graph object with response data
    $self->graph->_build_self($res, ['edgeDefinitions', 'name', 'orphanCollections']);
    # register instance
    $self->graph->vertexCollections->{$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, 'vertex', 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->vertexCollections->{$self->name};

    return $res;
}

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

# list
#
# GET /_api/gharial/graph-name/vertex
sub list
{
    my($self) = @_;



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