ArangoDB2

 view release on metacpan or  search on metacpan

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

package ArangoDB2::User;

use strict;
use warnings;

use base qw(
    ArangoDB2::Base
);

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

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

my @PARAMS = qw(
    active changePassword extra name passwd
);



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

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

    return $self;
}

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

# get
#
# GET /_api/user/{user}
sub get
{
    my($self, $args) = @_;
    # process request args
    $args = $self->_build_args($args, ['name']);
    # make request
    my $res = $self->arango->http->get(
        $self->api_path('user', delete $args->{name}),
    ) or return;
    # copy param data from res to self



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