#!/usr/bin/env perl
##no critic
#ABSTRACT: Patrons Account Information API command line client
#PODNAME: paia
our $VERSION = '0.25'; #VERSION
use App::PAIA;
App::PAIA->run;
__END__
=pod
=encoding UTF-8
=head1 NAME
paia - Patrons Account Information API command line client
=head1 VERSION
version 0.25
=head1 SYNOPSIS
paia login --base http://example.org/paia/ -u alice -p 12345
paia patron
paia items
paia renew http://uri.example.org/item/123
...
paia session --verbose
paia logout
Run C<paia help> or C<perldoc paia> for more commands and options.
=head1 DESCRIPTION
The B<paia> command line client can be used to access library patron account
information, such as loans, reservations, and fees via the Patrons Account
Information API (PAIA).
PAIA defines three commands for authentification (PAIA auth) and six commands
to access a patron account (PAIA core). For instance
paia items [options]
calls the "items" command of PAIA core. Access to PAIA core commands is granted
by access tokens that can be required by the "login" command. By default the
client automatically calls "login" if needed. Access token, patron identifier
and PAIA server URLs are stored in a session file (C<paia-session.json> by
default) that can be checked with command "session".
Basic options, such as base/core/auth URLs, username, and password can be stored
in a config file (C<paia.json> by default), such as following:
{
"base": "http://example.org/paia/",
"username": "alice",
"password": "12345"
}
=head1 COMMANDS
Call C<< paia help <command> >> for help on a specific PAIA command. Note that
PAIA servers do not need to support all PAIA commands.
=head2 PAIA auth
=over
=item B<login> (<http://gbv.github.io/paia/paia.html#login>)
Get a access token and patron identifier from credentials (username and
password). On success access token, patron identifier and base URL are stored
to a session file.
=item B<logout> (<http://gbv.github.io/paia/paia.html#logout>)
Invalidate an access token. An existing session file is deleted.
=item B<change> (<http://gbv.github.io/paia/paia.html#change>)
Change login password.
=back
=head2 PAIA core
=over
=item B<patron> (<http://gbv.github.io/paia/paia.html#patron>)
Get general patron information.
=item B<items> (<http://gbv.github.io/paia/paia.html#items>)
List loans, reservations and other items related to a patron.
=item B<request> (<http://gbv.github.io/paia/paia.html#request>)
Request one or more items for reservation or delivery.
=item B<renew> (<http://gbv.github.io/paia/paia.html#renew>)
Renew one or more documents held by a patron.
=item B<cancel> (<http://gbv.github.io/paia/paia.html#cancel>)
Cancel requests.
=item B<fees> (<http://gbv.github.io/paia/paia.html#fees>)
List fees.
=back
=head2 Client commands
=over
=item B<session>
Shows the current PAIA auth session status from session file.
=item B<help>
Show help.
=back
=head1 SEE ALSO
=over
=item L<http://gbv.github.io/paia/>
PAIA specification
=item L<App::PAIA>
Perl module used to implement this client
=back
=head1 AUTHOR
Jakob Voß
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Jakob Voß.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut