NAME
Catalyst::Model::ISBNDB - Provide Catalyst access to isbndb.com
SYNOPSIS
package MyApp::Model::ISBNDB;
use base 'Catalyst::Model::ISBNDB';
__PACKAGE__->config(access_key => 'XXX');
# Within a Catalyst application:
my $book = $c->model('ISBNDB')->find_book($isbn);
DESCRIPTION
This package provides a Catalyst model that makes requests of the isbndb.com web service, using their published REST interface. The model creates an instance of the WebService::ISBNDB::API class and uses it as a factory for making requests for data in any of the classes supported (Authors, Books, Categories, Publishers and Subjects).
CONFIGURATION
The model requires the application to configure a valid access key from the isbndb.com service:
__PACKAGE__->config(access_key => $KEY)
No other configuration is needed. If you choose to load and manipulate the WebService::ISBNDB::API class directly, you may also use the set_default_api_key
method of that class to set your access key.
METHODS
The following methods are available to users or sub-classes:
- find_book($ISBN|$ID)
- find_category($ID)
- find_publisher($ID)
- find_subject($ID)
-
Find a single record of the respective type, using the ID. When searching for a book, the ISBN may be specified instead of an ID. Returns the matching object,
undef
if no match is found, or throws an exception if an error occurs. - search_books($ARGS)
- search_categories($ARGS)
- search_publishers($ARGS)
- search_subjects($ARGS)
-
Perform a search for the respective type of records. The parameter is a hash-reference of search terms, as defined in the corresponding manual pages for the types that derive from WebService::ISBNDB::API. The return value is a WebService::ISBNDB::Iterator instance. An exception is thrown on error.
- get_agent
-
This method is called by the previous methods to retrieve the internal API factory agent. If one has not yet been created, it is first created and then returned.
- allocate_agent($CONFIG)
-
The first time get_agent() is called, it calls this method to allocate an instance of WebService::ISBNDB::API. The single parameter is the configuration information from Catalyst. This is used to look up the access key that would have been configured when the application started. The return value is either an API object instance, or an exception is thrown to signal an error.
CAVEATS
In order to access the isbndb.com service, you must register on their site and create an API access key.
SEE ALSO
WebService::ISBNDB::API, WebService::ISBNDB::Iterator
AUTHOR
Randy J. Ray <rjray@blackperl.com>
COPYRIGHT
This module and the code within are copyright (c) 2006 by Randy J. Ray and released under the terms of the Artistic License (http://www.opensource.org/licenses/artistic-license.php). This code may be redistributed under either the Artistic License or the GNU Lesser General Public License (LGPL) version 2.1 (http://www.opensource.org/licenses/lgpl-license.php).