lemonldap-ng/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Api.pm

135 lines
3.3 KiB
Perl
Raw Normal View History

2019-11-08 18:31:50 +01:00
# This module implements all the methods that responds to '/api/*' requests
package Lemonldap::NG::Manager::Api;
use 5.10.0;
use utf8;
use Mouse;
extends 'Lemonldap::NG::Common::Conf::RESTServer';
use Lemonldap::NG::Manager::Api::2F;
use Lemonldap::NG::Manager::Api::Providers::OidcRp;
use Lemonldap::NG::Manager::Api::Providers::SamlSp;
2019-11-08 18:31:50 +01:00
our $VERSION = '2.0.7';
#############################
# I. INITIALIZATION METHODS #
#############################
use constant defaultRoute => 'api.html';
sub addRoutes {
my ( $self, $conf ) = @_;
# HTML template
$self->addRoute( 'api.html', undef, ['GET'] )
->addRoute(
2019-12-04 17:50:41 +01:00
api => {
v1 => {
hello => "helloworld",
},
},
['GET']
)
->addRoute(
api => {
v1 => {
providers => {
oidc => {
rp => {
findByConfKey => {
':uPattern' => 'findOidcRpByConfKey'
},
findByClientId => {
':uClientId' => 'findOidcRpByClientId'
},
':confKey' => 'getOidcRpByConfKey'
},
},
saml => {
sp => {
findByConfKey => {
':uPattern' => 'findSamlSpByConfKey'
},
findByEntityId => {
':uEntityId' => 'findSamlSpByEntityId'
},
':confKey' => 'getSamlSpByConfKey'
},
},
2019-12-05 12:40:03 +01:00
},
2019-12-04 17:50:41 +01:00
},
},
['GET']
)
->addRoute(
api => {
v1 => {
providers => {
oidc => {
rp => 'addOidcRp'
},
saml => {
sp => 'addSamlSp'
},
},
},
},
['POST']
)
->addRoute(
api => {
v1 => {
providers => {
oidc => {
rp => {':confKey' => 'replaceOidcRp'}
},
saml => {
sp => {':confKey' => 'replaceSamlSp'}
},
},
},
},
['PUT']
)
->addRoute(
api => {
v1 => {
providers => {
oidc => {
rp => {':confKey' => 'updateOidcRp'}
},
saml => {
sp => {':confKey' => 'updateSamlSp'}
},
},
},
},
['PATCH']
)
->addRoute(
api => {
v1 => {
providers => {
oidc => {
rp => {':confKey' => 'deleteOidcRp'}
},
saml => {
sp => {':confKey' => 'deleteSamlSp'}
},
},
},
},
['DELETE']
2019-11-08 18:31:50 +01:00
);
2019-12-04 17:50:41 +01:00
}
2019-11-08 18:31:50 +01:00
1;