Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package HonbuDojo::Units::Core::Http::Router;
- use Mojo::Base 'Mojolicious', -signatures, -base;
- use Mojolicious::Controller;
- use Mojolicious::Routes;
- use Mojolicious::Routes::Match;
- use HonbuDojo::Units::User::Http::Routes::UserRoutes;
- use Data::Dumper qw/Dumper/;
- has 'routes';
- sub init($self, $routes)
- {
- $routes->namespaces([
- 'HonbuDojo::Units',
- ]);
- HonbuDojo::Units::User::Http::Routes::UserRoutes->new;
- $self->dispatch();
- }
- sub dispatch($self)
- {
- foreach my $routeData (@{$self->routes})
- {
- my $method = lc $routeData->{method};
- my $uri = $routeData->{uri};
- my $middlewares = $routeData->{middlewares} || undef;
- my $controller = $1 if $routeData->{controller} =~ m/^(.+)\@/;
- my $action = $1 if $routeData->{controller} =~ m/\@(.+)$/;
- $self->handleMiddleWares($middlewares);
- $self->routes->$method($uri)->to(
- controller => $controller,
- action => $action,
- );
- }
- }
- sub handleMiddleWares
- {
- my ($self, $middlewares) = @_;
- ## TODO:: rename Plack::Midleware nameSpace to the Unit::blablabla ones
- $self->plugin(
- plack_middleware => $middlewares,
- );
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement