added usage_init from view
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 3 Sep 2011 23:12:37 +0000 (23:12 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 3 Sep 2011 23:12:37 +0000 (23:12 +0000)
lib/CloudStore/Couchbase.pm
t/Couchbase.t

index 7585784..de2d323 100644 (file)
@@ -9,6 +9,7 @@ use File::Slurp qw();
 use Cache::Memcached;
 use Digest::MD5 qw(md5_base64);
 use Data::Dump qw(dump);
+use LWP::Simple;
 
 my $buckets = {
        files => 5800,
@@ -55,6 +56,29 @@ sub usage {
        $self->{session}->get( $data->{login} . ':usage' );
 }
 
+sub usage_init {
+       my ($self,$data) = @_;
+
+       my $usage = 0;
+
+       my $url = sprintf
+               'http://localhost:5984/files/_design/files/_view/login_usage?group=true&connection_timeout=60000&limit=1&skip=0&start_key="%s"&end_key="%s"'
+               , $data->{login}
+               , $data->{login}
+       ;
+
+       warn "usage from $url";
+       if ( my $json = get $url ) {
+               warn "# JSON = $json\n";
+               my $r = decode_json $json;
+               warn dump $r;
+               $usage = $r->{rows}->[0]->{value};
+               $usage = 0 unless defined $usage;
+       }
+
+       $self->{session}->set( $data->{login} . ':usage' => $usage );
+}
+
 sub _key {
        my $data = shift;
        #md5_base64( $data->{login} . '/' . $data->{file} );
index dfcd1d7..74a467a 100755 (executable)
@@ -27,7 +27,7 @@ my $data =
 
 ok my $r = CloudStore::Couchbase->new, 'new';
 
-ok($r->{session}->set( 'test:usage', 0 ), 'reset usage');
+ok($r->usage_init({ login => 'test' }), 'usage_init' );
 cmp_ok($r->{session}->get('test:usage'), '==',0, 'usage');
 
 ok my $j = $r->file_set($data), 'file_set';