/[Frey]/trunk/lib/Frey/Mojo.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Mojo.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1167 by dpavlin, Wed Jul 1 17:46:35 2009 UTC revision 1168 by dpavlin, Thu Jul 2 21:55:44 2009 UTC
# Line 6  use warnings; Line 6  use warnings;
6  use base 'Mojo';  use base 'Mojo';
7    
8  use MojoX::Dispatcher::Static;  use MojoX::Dispatcher::Static;
9    use Data::Dump qw/dump/;
10    
11  use lib 'lib';  use lib 'lib';
12  use Frey::Server;  use Frey::Server;
13    
14  use Frey::CouchAPI;  use Frey::CouchAPI;
15    my $couch_api = 0;
16    
17    # FIXME move this somewhere
18    use App::RoomReservation;
19    my $mapping_url;
20    my $url_mapping = App::RoomReservation->url_mapping;
21    map { $mapping_url->{ $url_mapping->{$_} } = $_ } keys %$url_mapping;
22    my $rewrite_regex = join('|', sort { length $b <=> length $a } keys %$mapping_url);
23    warn "# mapping $rewrite_regex ",dump( $mapping_url );
24    
 use Data::Dump qw/dump/;  
25    
26  __PACKAGE__->attr(  __PACKAGE__->attr(
27      static => (                                  static => (                            
# Line 34  sub new { Line 44  sub new {
44      return $self;      return $self;
45  }  }
46    
47    sub tx_die {
48            my $tx = shift;
49            $tx->res->code( shift );
50            $tx->res->body( shift );
51            $tx->res->headers->content_type( shift || 'text/plain' );
52            return $tx;
53    }
54    
55  sub handler {  sub handler {
56          my ($self, $tx) = @_;          my ($self, $tx) = @_;
# Line 61  sub handler { Line 78  sub handler {
78          bless $tx, 'Fake::App';          bless $tx, 'Fake::App';
79    
80          # rewrite URL          # rewrite URL
81          Frey::CouchAPI->rewrite_urls( $tx );          Frey::CouchAPI->rewrite_urls( $tx ) if $couch_api;
82    
83          if ( ! $self->static->dispatch($tx) ) {          if ( ! $self->static->dispatch($tx) ) {
84  #               warn "# static ",dump( $tx );  #               warn "# static ",dump( $tx );
85                  return $tx;                  return $tx;
86          }          }
87    
88            # FIXME this should move somewhere
89            my $path = $tx->req->url->path;
90            if ( $path =~ m{/($rewrite_regex)} ) {
91                    my $from = $1;
92                    my $to = $mapping_url->{$from} || return tx_die( $tx, 500, "Unknown $from" );
93                    $tx->req->url->path( $to );
94                    warn "ACL $from -> $to OK\n";
95            } else {
96                    return tx_die( $tx, 404, "Noting at $path") if ! $ENV{FREY_DEV};
97            }
98    
99          my $body;          my $body;
100    
101          my $server = Frey::Server->new;          my $server = Frey::Server->new;
# Line 84  sub handler { Line 112  sub handler {
112  #       warn "## headers = ", dump( $tx->req->content->headers );  #       warn "## headers = ", dump( $tx->req->content->headers );
113    
114          if ( $referer =~ m{/_utils} || $ajax =~ m{XMLHttpRequest}i ) {          if ( $referer =~ m{/_utils} || $ajax =~ m{XMLHttpRequest}i ) {
115                  return Frey::CouchAPI->dispatch( $tx );                  return Frey::CouchAPI->dispatch( $tx ) if $couch_api;
116          }          }
117    
118          warn "# url $url from $referer params ",dump($params);          warn "# url $url from $referer params ",dump($params);

Legend:
Removed from v.1167  
changed lines
  Added in v.1168

  ViewVC Help
Powered by ViewVC 1.1.26