# Base package for LLNG portal plugins. It adds somme wrapper to
# Lemonldap::NG::Handler::PSGI::Try (base of portal)
package Lemonldap::NG::Portal::Main::Plugin;

use strict;
use Mouse;

our $VERSION = '2.0.0';

extends 'Lemonldap::NG::Common::Module';

sub addAuthRoute {
    my $self = shift;
    return $self->_addRoute('addAuthRoute',@_);
}

sub addUnauthRoute {
    my $self = shift;
    return $self->_addRoute('addUnauthRoute',@_);
}

sub _addRoute {
    my ( $self, $type, $word, $subName, $methods ) = @_;
    die 'Only simple route are authorizated here. Uses $self->p->addAuthRoute'
      if ( ref $subName );
    $self->can($subName) or die "Unknown sub $subName";
    $self->p->$type(
        $word,
        sub {
            my $p = shift;
            return $self->$subName(@_);
        },
        $methods
    );
}

1;
