From a682bf6b4b0f7aa0cdd41df90f4cef0782e6aaea Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 30 Oct 2010 16:17:57 +0200 Subject: [PATCH] /data/:database/:entity/:id --- angular-server.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/angular-server.pl b/angular-server.pl index a70e3b7..2a1ad63 100755 --- a/angular-server.pl +++ b/angular-server.pl @@ -8,6 +8,7 @@ use Data::Dump qw(dump); # http://angular.getangular.com/data our $data; +our $id2nr; get '/' => 'index'; @@ -66,6 +67,25 @@ get '/data/:database/:entity' => sub { get '/data/:database/:entity/:id' => sub { my $self = shift; + my $database = $self->param('database'); + my $entity = $self->param('entity'); + my $id = $self->param('id'); + + my $e = $data->{$database}->{$entity} || die "no entity $entity"; + + if ( ! defined $id2nr->{$database}->{$entity} ) { + foreach my $i ( 0 .. $#$e ) { + $id2nr->{$database}->{$entity}->{ $e->[$i]->{'$id'} } = $i; + } + } + + if ( exists $id2nr->{$database}->{$entity}->{$id} ) { + my $nr = $id2nr->{$database}->{$entity}->{$id}; + warn "# entity $id -> $nr\n"; + $self->render_json( $data->{$database}->{$entity}->[$nr] ); + } else { + die "no entity $entity $id in ", dump( $id2nr->{$database}->{$entity} ); + } }; any [ 'put' ] => '/data/:database/:entity/:id' => sub { -- 2.20.1