package MyRedland; use MyRedland::Controller::Metrics; use Mojo::Base 'Mojolicious', -signatures; # This method will run once at server start sub startup ($self) { my $metrics = MyRedland::Controller::Metrics->new; $self->hook( around_dispatch => sub { my $next = shift; my $c = shift; $metrics->request($c); if ( defined $next ) { $next->(); } } ); my $config = $self->plugin('JSONConfig'); $self->config( hypnotoad => { proxy => 1, listen => ['http://localhost:3000'] } ); $self->secrets($self->config->{secrets}); # Router my $r = $self->routes; # Normal route to controller $r->get('/')->to('Page#index'); # $r->get('/:post')->to('Page#post'); $r->get('/stats')->to('Metrics#stats'); $r->get('/<:category>.rss')->to('Page#category_rss'); $r->get('/:category')->to('Page#category'); $r->get('/posts/<:slug>-preview.png')->to('Page#get_post_preview'); $r->get('/posts/:slug')->to('Page#post'); $r->get('/stats/login')->to('Metrics#login'); $r->post('/stats/login')->to('Metrics#submit_login'); } 1;