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 )