File Coverage

blib/lib/WWW/Zitadel.pm
Criterion Covered Total %
statement 21 21 100.0
branch 4 4 100.0
condition n/a
subroutine 8 8 100.0
pod 0 1 0.0
total 33 34 97.0


line stmt bran cond sub pod time code
1             package WWW::Zitadel;
2              
3             # ABSTRACT: Perl client for Zitadel identity management (OIDC + Management API)
4              
5 2     2   778394 use Moo;
  2         19261  
  2         14  
6 2     2   4578 use WWW::Zitadel::OIDC;
  2         11  
  2         91  
7 2     2   1808 use WWW::Zitadel::Management;
  2         9  
  2         92  
8 2     2   19 use WWW::Zitadel::Error;
  2         4  
  2         52  
9 2     2   10 use namespace::clean;
  2         4  
  2         14  
10              
11             our $VERSION = '0.001';
12              
13             has issuer => (
14             is => 'ro',
15             required => 1,
16             );
17              
18             sub BUILD {
19 5     5 0 392888 my $self = shift;
20 5 100       54 die WWW::Zitadel::Error::Validation->new(
21             message => 'issuer must not be empty',
22             ) unless length $self->issuer;
23             }
24              
25             has token => (
26             is => 'ro',
27             doc => 'Personal Access Token for Management API',
28             );
29              
30             has oidc => (
31             is => 'lazy',
32             builder => sub {
33 1     1   39 WWW::Zitadel::OIDC->new(issuer => $_[0]->issuer);
34             },
35             );
36              
37             has management => (
38             is => 'lazy',
39             builder => sub {
40 2     2   449 my $self = shift;
41 2 100       32 die WWW::Zitadel::Error::Validation->new(
42             message => 'Management API requires a token',
43             ) unless $self->token;
44 1         25 WWW::Zitadel::Management->new(
45             base_url => $self->issuer,
46             token => $self->token,
47             );
48             },
49             );
50              
51             1;
52              
53             __END__