owlcode.tech/lib/OwlcodeTech.pm

50 lines
1.7 KiB
Perl
Raw Normal View History

package OwlcodeTech;
use OwlcodeTech::Controller::Metrics;
2022-11-09 13:31:58 +01:00
use Mojo::Base 'Mojolicious', -signatures;
# This method will run once at server start
sub startup ($self) {
my $metrics = OwlcodeTech::Controller::Metrics->new;
2022-11-15 23:57:20 +01:00
$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(
2023-05-03 06:19:20 +02:00
hypnotoad => { proxy => 1, listen => [$self->config('listen') // 'http://localhost:3000'] } );
$self->config( css_version => int( rand(10000) ) );
$self->secrets( $self->config->{secrets} );
2022-11-15 23:57:20 +01:00
# Router
my $r = $self->routes;
# Normal route to controller
$r->get('/')->to('Page#index');
$r->get('/sitemap.xml')->to('Sitemap#sitemap');
2023-05-03 01:02:51 +02:00
$r->get('/robots.txt')->to('Robots#robots');
2022-11-15 23:57:20 +01:00
# $r->get('/:post')->to('Page#post');
2022-11-17 00:44:20 +01:00
$r->get('/stats')->to('Metrics#stats');
2022-11-15 23:57:20 +01:00
$r->get('/<:category>.rss')->to('Page#category_rss');
$r->get('/:category_slug/atributo/<:attribute_slug>-preview.png')->to('Attribute#get_attribute_preview');
$r->get('/:category_slug/atributo/:attribute_slug')->to('Attribute#get');
$r->get('/<:category>-preview.png')->to('Page#get_category_preview');
2022-11-15 23:57:20 +01:00
$r->get('/:category')->to('Page#category');
2023-05-04 00:13:49 +02:00
$r->get('/posts/<:slug>-preview.png')->to('Page#get_post_preview');
2022-11-15 23:57:20 +01:00
$r->get('/posts/:slug')->to('Page#post');
$r->get('/filtros')->to('Filter#list');
$r->get('/filtros/:slug')->to('Filter#get');
2022-11-17 00:44:20 +01:00
$r->get('/stats/login')->to('Metrics#login');
$r->post('/stats/login')->to('Metrics#submit_login');
2022-11-09 13:31:58 +01:00
}
1;