#!/usr/bin/env perl
##no critic
#ABSTRACT: Patrons Account Information API command line client 
#PODNAME: paia
our $VERSION = '0.11'; #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.11

=head1 SYNOPSIS

    paia login --base http://example.org/paia/ --username alice --password 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 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). Each command can be called as first
argument to the client. 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.

Basic options, such as base/core/auth URLs, username, and password can be stored
in a config file, such as following. By default C<paia.json> read used if found.

    {
      "base": "http://example.org/paia/",
      "username": "alice",
      "password": "12345"
    }

Access token, patron identifier and PAIA server URLs are stored in a session
file (C<.paia_session> by default) that can be checked with command "session".

=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 login

Get a access token and patron identifier from credentials (username and
password). The patron identifier is used to uniquely identify a patron account.
It may be identical with the username. On success access token, patron
identifier and base URL are stored to a session file.

=item logout

Invalidate an access token. An existing session file is deleted.

=item change

Change login password (not implemented yet).

=back

=head2 PAIA core

=over

=item patron

Get general patron information.

=item items

List loans, reservations and other items related to a patron.

=item request

Request one or more items for reservation or delivery.

=item renew

Renew one or more documents held by a patron.

=item cancel

Cancel requests.

=item fees

List fees.

=back

=head2 Client commands

=over

=item session

Shows the current PAIA auth session status from session file.

=item 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

