~bluet/+junk/gaialbs-backendselector-wo-ws

« back to all changes in this revision

Viewing changes to lite_app/myapp.pl

  • Committer: BlueT - Matthew Lien - 練喆明
  • Date: 2012-07-12 06:53:24 UTC
  • Revision ID: bluet@bluet.org-20120712065324-yguofzi2iurwvgf5
refactor stalkers/

Show diffs side-by-side

added added

removed removed

Lines of Context:
611
611
                say "START stalk/" if $DEBUG;
612
612
                $ds->stalk(
613
613
                        $node_info,
614
 
                        $target_info
 
614
                        $target_info,
615
615
                        sub {
616
616
                                my ($res, $err) = @_;
617
617
                                say Dumper( $res, $err ) unless $res eq 'OK';
625
625
 
626
626
get '/stalkers/#apikey/#layer/#ident' => sub {
627
627
        my $self = shift;
 
628
        $self->res->headers->header('Access-Control-Allow-Origin' => '*');
 
629
        $self->render_later;
 
630
        
628
631
        my $ds = $DS{node};
 
632
        my $apikey  = $self->param('apikey');
 
633
        my $layer  = $self->param('layer');
 
634
        my $ident  = $self->param('ident');
629
635
        
630
 
        $self->render_later;
 
636
        if ( my @syntax_error = &_syntax_error( apikey => $apikey ) ) {
 
637
                return $self->render_json( \@{['', \@syntax_error]} );
631
638
        
632
639
        my $node_info = {
633
 
                api_key => $self->param('apikey'),
634
 
                layer   => $self->param('layer'),
635
 
                ident   => $self->param('ident'),
 
640
                api_key => $apikey,
 
641
                layer   => $layer,
 
642
                ident   => $ident,
636
643
        };
637
 
        
638
 
        my $cv = $ds->stalkers(
639
 
                $node_info,
640
 
        );
641
 
        
642
 
        $cv->cb( sub {
643
 
                my ($res, $err) = $_[0]->recv;
644
 
                #~ say Dumper( $res, $err );
645
 
                $self->render_json( \@{[$res, \@{[$err]}]} );
646
 
        });
 
644
        say "GOT DATA in stalkers/:" if $DEBUG;
 
645
        say Dumper($node_info) if $DEBUG;
 
646
        
 
647
        
 
648
        my $cs = AnyEvent::CallbackStack->new;
 
649
        $cs->start();
 
650
        
 
651
        $cs->add( sub {
 
652
                say "START valid in stalk/ stalker" if $DEBUG;
 
653
                $ds->valid(
 
654
                        %$node_info,
 
655
                        sub {
 
656
                                my ($res, $err) = @_;
 
657
                                say Dumper( $res, $err ) unless $res eq 'OK';
 
658
                                $res eq 'OK' ?
 
659
                                        $cs->next
 
660
                                :
 
661
                                        return $self->render_json( \@{[$res, $err]} )
 
662
                                ;
 
663
                        },
 
664
                );
 
665
        });
 
666
        
 
667
        $cs->add( sub {
 
668
                say "START stalk/" if $DEBUG;
 
669
                $ds->stalkers(
 
670
                        $node_info,
 
671
                        sub {
 
672
                                my ($res, $err) = @_;
 
673
                                say Dumper( $res, $err ) unless $res eq 'OK';
 
674
                                $self->render_json( \@{[$res, $err]} );
 
675
                        },
 
676
                );
 
677
        });
 
678
        
647
679
};
648
680
 
649
681