added usage_init from view
[cloudstore.git] / lib / CloudStore / Couchbase.pm
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} );