ArangoDB2

 view release on metacpan or  search on metacpan

lib/ArangoDB2/Database.pm  view on Meta::CPAN

package ArangoDB2::Database;

use strict;
use warnings;

use base qw(
    ArangoDB2::Base
);

use Data::Dumper;
use JSON::XS;
use Scalar::Util qw(reftype);

use ArangoDB2::Collection;
use ArangoDB2::Graph;
use ArangoDB2::Query;
use ArangoDB2::Replication;
use ArangoDB2::Transaction;
use ArangoDB2::User;

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



# collection
#
# get/create ArangoDB2::Collection object
sub collection
{
    my($self, $name) = @_;

    if (defined $name) {
        # only create one ArangoDB2::Collection instance per name
        return $self->collections->{$name} ||= ArangoDB2::Collection->new(
            $self->arango,
            $self,
            $name,
        );
    }
    else {
        ArangoDB2::Collection->new(
            $self->arango,
            $self,
            $name,
        );
    }
}

# collections
#
# index of ArangoDB2::Collection objects by name
sub collections { $_[0]->{collections} ||= {} }

# create
#
# POST /_api/database
sub create
{
    my($self, $args) = @_;
    # process args
    $args = $self->_build_args($args, ['name','users']);
    # make request
    my $res = $self->arango->http->post(
        '/_api/database',
        undef,
        $JSON->encode($args),
    ) or return;

    return $self;
}

# current
#
# GET /_api/database/current
sub current
{
    my($self) = @_;

    return $self->arango->http->get('/_api/database/current');
}



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