ArangoDB2

 view release on metacpan or  search on metacpan

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

package ArangoDB2::Endpoint;

use strict;
use warnings;

use base qw(
    ArangoDB2::Base
);

use Data::Dumper;
use JSON::XS;
use URI::Escape qw(uri_escape);

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



###############
# API METHODS #
###############

# create
#
# POST /_api/endpoint
sub create
{
    my($self, $args) = @_;
    # process request args
    $args = $self->_build_args($args, ['name', 'databases']);
    # use name for endpoint param
    $args->{endpoint} = $args->{name};
    # make request
    my $res = $self->arango->http->post(
        '/_api/endpoint',
        undef,
        $JSON->encode($args),
    ) or return;
    # if request was success copy args to self
    $self->_build_self($args, ['name', 'databases']);

    return $self;
}

# delete
#
# DELETE /_api/endpoint/{name}
sub delete
{
    my($self, $args) = @_;
    # process request args
    $args = $self->_build_args($args, ['name']);
    # make request
    return $self->arango->http->delete(
        '/_api/endpoint/'.uri_escape( $args->{name} )
    );
}

# list
#
# GET /_api/endpoint
sub list
{
    my($self) = @_;

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

####################
# PROPERTY METHODS #
####################

sub databases { shift->_get_set('databases', @_) }

1;



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