summary refs log tree commit diff
path: root/lib/Net/Riak/Role/PBC/Bucket.pm
blob: 6cd4240487df083bf334a009a053382afc938a44 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package Net::Riak::Role::PBC::Bucket;
use Moose::Role;

sub get_properties {
    my ( $self, $name, $params ) = @_;
    my $resp = $self->send_message( GetBucketReq => { bucket => $name } );
    return { props =>  { %{ $resp->props } } };
}

sub set_properties {
    my ( $self, $bucket, $props ) = @_;
    return $self->send_message(
        SetBucketReq => {
            bucket => $bucket->name,
            props  => $props
        }
    );
}

sub get_keys {
    my ( $self, $name, $params) = @_;
    my $keys = [];

    my $res = $self->send_message(
        ListKeysReq => { bucket => $name, },
        sub {
            if ( defined $_[0]->keys ) {
                if ($params->{cb}) {
                    $params->{cb}->($_) for @{ $_[0]->keys };
                }
                else {
                    push @$keys, @{ $_[0]->keys };
                }
            }
        }
    );

    return $params->{cb} ? undef : $keys;
}

1;