summary refs log tree commit diff
path: root/lib/Net/Riak/Role/PBC/Bucket.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/Riak/Role/PBC/Bucket.pm')
-rw-r--r--lib/Net/Riak/Role/PBC/Bucket.pm46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/Net/Riak/Role/PBC/Bucket.pm b/lib/Net/Riak/Role/PBC/Bucket.pm
new file mode 100644
index 0000000..aa7d7fa
--- /dev/null
+++ b/lib/Net/Riak/Role/PBC/Bucket.pm
@@ -0,0 +1,46 @@
+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;
+