summaryrefslogblamecommitdiff
path: root/lib/Net/Riak/Role/PBC/Bucket.pm
blob: aa7d7fa9cffff9cb1ec86e97d686165b2a5eb83b (plain) (tree)













































                                                                          
package Net::Riak::Role::PBC::Bucket;

use Moose::Role;
use Data::Dumper;

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;