Hetula-Client
view release on metacpan or search on metacpan
lib/Hetula/Client.pm view on Meta::CPAN
my $s = bless(Storable::dclone($params), $class);
$s->{ua} = Mojo::UserAgent->new() unless $s->{ua};
return $s;
}
=head2 API Access methods
=head3 login
See Hetula API doc for endpoint POST /api/v1/auth
@param1 {HASHRef} username => String || undef if given via credentials during construction,
password => String || undef if given via credentials during construction,
organization => String || undef if given via credentials during construction,
=cut
sub login($s, $params={}) {
$params->{username} = $s->{username} unless $params->{username};
$params->{password} = $s->{password} unless $params->{password};
lib/Hetula/Client.pm view on Meta::CPAN
=cut
sub loginActive($s) {
my $tx = $s->ua->get( $s->baseURL().'/api/v1/auth' );
return _handleResponse($tx);
}
=head3 ssnAdd
See Hetula API doc for endpoint POST /api/v1/ssns
=cut
sub ssnAdd($s, $params) {
my $tx = $s->ua->post( $s->baseURL().'/api/v1/ssns', {Accept => '*/*'}, json => $params );
return _handleResponse($tx);
}
=head3 ssnGet
See Hetula API doc for endpoint GET /api/v1/users/<id>
@param1 {HASHRef} id => ssn id to get
=cut
sub ssnGet($s, $params) {
die("Hetula::Client::BadParameter - parameter 'id' is not an integer") unless $params->{id} =~ /$RE{num}{int}/;
my $tx = $s->ua->get( $s->baseURL().'/api/v1/ssns/'.$params->{id} );
return _handleResponse($tx);
}
=head3 ssnsBatchAdd
See Hetula API doc for endpoint GET /api/v1/ssns/batch
@param1 {ARRAYRef} of ssns
=cut
sub ssnsBatchAdd($s, $ssnArray) {
my $tx = $s->ua->post( $s->baseURL().'/api/v1/ssns/batch', {Accept => '*/*'}, json => $ssnArray );
return _handleResponse($tx);
}
lib/Hetula/Client.pm view on Meta::CPAN
@{$context[$i]} #Add what is left of the given file columns as a context for the ssn report file. This makes it easier for possible next processing steps in the migration pipeline.
)."\n";
}
print __PACKAGE__."::ssnsBatchAddFromFile() :> '$i' reports digested.\n";
};
$s->ssnsBatchAddChunked($feeder, $digester);
}
=head3 userAdd
See Hetula API doc for endpoint POST /api/v1/users
=cut
sub userAdd($s, $params) {
my $tx = $s->ua->post( $s->baseURL().'/api/v1/users', {Accept => '*/*'}, json => $params );
return _handleResponse($tx);
}
=head3 userBasicAdd
lib/Hetula/Client.pm view on Meta::CPAN
$params->{permissions} = [
'ssns-post',
'ssns-id-get',
'auth-get',
];
return $s->userAdd($params);
}
=head3 userMod
See Hetula API doc for endpoint PUT /api/v1/users/<id>
@param {HASHRef} username or id => mandatory,
other patron attributes => and values,
...
=cut
sub userMod($s, $params) {
my $id = $params->{id} || $params->{username};
die("Hetula::Client::BadParameter - parameter 'id' or 'username' is missing") unless ($id);
( run in 0.453 second using v1.01-cache-2.11-cpan-524268b4103 )