projects
/
angular-mojolicious.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
include angular submodule
[angular-mojolicious.git]
/
angular-server.pl
diff --git
a/angular-server.pl
b/angular-server.pl
index
5ac99de
..
30a99b9
100755
(executable)
--- a/
angular-server.pl
+++ b/
angular-server.pl
@@
-7,9
+7,27
@@
use Data::Dump qw(dump);
# http://docs.getangular.com/REST.Basic
# http://angular.getangular.com/data
# http://docs.getangular.com/REST.Basic
# http://angular.getangular.com/data
-our $data;
+our $data = {
+ 'Cookbook' => {
+ test => [
+ { '$id' => 1, foo => 1, bar => 2, baz => 3 },
+ { '$id' => 2, foo => 1 },
+ { '$id' => 3, bar => 2 },
+ { '$id' => 4, baz => 3 },
+ ],
+ }
+};
our $id2nr;
our $id2nr;
+sub _render_jsonp {
+ my ( $self, $json ) = @_;
+ my $data = $self->render( json => $json, partial => 1 );
+ if ( my $callback = $self->param('callback') ) {
+ $data = "$callback($data)";
+ }
+ $self->render( data => $data, format => 'js' );
+}
+
get '/' => 'index';
get '/_replicate' => sub {
get '/' => 'index';
get '/_replicate' => sub {
@@
-18,7
+36,7
@@
get '/_replicate' => sub {
if ( my $from = $self->param('from') ) {
my $got = $self->client->get( $from )->res->json;
warn "# from $from ",dump($got);
if ( my $from = $self->param('from') ) {
my $got = $self->client->get( $from )->res->json;
warn "# from $from ",dump($got);
-
$self->render_json(
$got );
+
_render_jsonp( $self,
$got );
my $database = $got->{name};
my $entities = $got->{entities};
my $database = $got->{name};
my $entities = $got->{entities};
@@
-38,12
+56,13
@@
get '/_replicate' => sub {
};
get '/_data' => sub {
};
get '/_data' => sub {
- shift->render_json( $data )
+ my $self = shift;
+ _render_jsonp( $self, $data )
};
get '/data/' => sub {
my $self = shift;
};
get '/data/' => sub {
my $self = shift;
-
$self->render_json(
[ keys %$data ] );
+
_render_jsonp( $self,
[ keys %$data ] );
};
get '/data/:database' => sub {
};
get '/data/:database' => sub {
@@
-57,12
+76,12
@@
warn "# entry $entity ", dump( $data->{$database}->{$entity} );
$list_databases->{document_count} += $count;
}
warn dump($list_databases);
$list_databases->{document_count} += $count;
}
warn dump($list_databases);
-
$self->render_json(
$list_databases );
+
_render_jsonp( $self,
$list_databases );
};
get '/data/:database/:entity' => sub {
my $self = shift;
};
get '/data/:database/:entity' => sub {
my $self = shift;
-
$self->render_json(
$data->{ $self->param('database') }->{ $self->param('entity' ) } );
+
_render_jsonp( $self,
$data->{ $self->param('database') }->{ $self->param('entity' ) } );
};
get '/data/:database/:entity/:id' => sub {
};
get '/data/:database/:entity/:id' => sub {
@@
-83,16
+102,19
@@
get '/data/:database/:entity/:id' => sub {
if ( exists $id2nr->{$database}->{$entity}->{$id} ) {
my $nr = $id2nr->{$database}->{$entity}->{$id};
warn "# entity $id -> $nr\n";
if ( exists $id2nr->{$database}->{$entity}->{$id} ) {
my $nr = $id2nr->{$database}->{$entity}->{$id};
warn "# entity $id -> $nr\n";
-
$self->render_json(
$data->{$database}->{$entity}->[$nr] );
+
_render_jsonp( $self,
$data->{$database}->{$entity}->[$nr] );
} else {
die "no entity $entity $id in ", dump( $id2nr->{$database}->{$entity} );
}
};
} else {
die "no entity $entity $id in ", dump( $id2nr->{$database}->{$entity} );
}
};
-any [ 'put' ] => '/data/:database/:entity/:id' => sub {
+any [ 'put'
, 'post'
] => '/data/:database/:entity/:id' => sub {
my $self = shift;
my $self = shift;
- $data->{ $self->param('database') }->{ $self->param('entity') }->{ $self->param('id') } = $self->req->json;
- dumper $data;
+ my $data = $self->req->json;
+ warn "# body ",dump($self->req->body, $data);
+ die "no data" unless $data;
+ $data->{ $self->param('database') }->{ $self->param('entity') }->{ $self->param('id') } = $data;
+ _render_jsonp( $self, $data );
};
get '/demo/:groovy' => sub {
};
get '/demo/:groovy' => sub {