+get '/reservations/events/:view_name' => sub {
+ my $self = shift;
+
+ my $view = _couchdb_get('/reservations/_design/events/_view/' . $self->param('view_name') . '?group=true');
+ my $hash;
+
+ if ( exists $view->{error} ) {
+ _couchdb_put "/reservations/_design/events", {
+ _id => '_design/events',
+ language => 'javascript',
+ views => {
+ submited => {
+ map => q|
+ function(doc) {
+ if ( doc.event && doc.event.UID ) emit(doc.event.UID, 1)
+ }
+ |,
+ reduce => q|_sum|,
+ }
+ }
+ };
+ }
+
+ _render_jsonp( $self, {} ) unless ref $view->{rows} eq 'ARRAY';
+
+ foreach my $row ( @{ $view->{rows} } ) {
+ $hash->{ $row->{key} } = $row->{value};
+ }
+
+ _render_jsonp( $self, $hash );
+};
+
+get '/_utils/script/(*url)' => sub { $_[0]->proxy_to( "$couchdb/_utils/script/" . $_[0]->param('url') , with_query_params => 1 ) };
+