Bug 10309 - New OPAC theme based on Bootstrap
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / js / overdrive.js
1 if ( typeof KOHA == "undefined" || !KOHA ) {
2     var KOHA = {};
3 }
4
5 KOHA.OverDrive = ( function() {
6     var proxy_base_url = '/cgi-bin/koha/svc/overdrive_proxy';
7     var library_base_url = 'http://api.overdrive.com/v1/libraries/';
8     return {
9         Get: function( url, params, callback ) {
10             $.ajax( {
11                 type: 'GET',
12                 url: url.replace( /https?:\/\/api.overdrive.com\/v1/, proxy_base_url ),
13                 dataType: 'json',
14                 data: params,
15                 error: function( xhr, error ) {
16                     try {
17                         callback( JSON.parse( xhr.responseText ));
18                     } catch ( e ) {
19                         callback( {error: xhr.responseText || true} );
20                     }
21                 },
22                 success: callback
23             } );
24         },
25         GetCollectionURL: function( library_id, callback ) {
26             if ( KOHA.OverDrive.collection_url ) {
27                 callback( KOHA.OverDrive.collection_url );
28                 return;
29             }
30
31             KOHA.OverDrive.Get(
32                 library_base_url + library_id,
33                 {},
34                 function ( data ) {
35                     if ( data.error ) {
36                         callback( data );
37                         return;
38                     }
39
40                     KOHA.OverDrive.collection_url = data.links.products.href;
41
42                     callback( data.links.products.href );
43                 }
44             );
45         },
46         Search: function( library_id, q, limit, offset, callback ) {
47             KOHA.OverDrive.GetCollectionURL( library_id, function( data ) {
48                 if ( data.error ) {
49                     callback( data );
50                     return;
51                 }
52
53                 KOHA.OverDrive.Get(
54                     data,
55                     {q: q, limit: limit, offset: offset},
56                     callback
57                 );
58             } );
59         }
60     };
61 } )();