]> git.evergreen-ils.org Git - contrib/Conifer.git/blob - Open-ILS/web/js/ui/default/opac/ebook_api/session.js
LP#1541559: ebook API integration for TPAC
[contrib/Conifer.git] / Open-ILS / web / js / ui / default / opac / ebook_api / session.js
1 // initialize an API session
2 // XXX Are there any cases where checkSession does not suffice for this?
3 function startSession(vendor, callback) {
4     console.log('starting ebook API session for ' + vendor);
5     new OpenSRF.ClientSession('open-ils.ebook_api').request({
6         method: 'open-ils.ebook_api.start_session',
7         params: [ vendor, ou ],
8         async: false, // XXX
9         oncomplete: function(r) {
10             var resp = r.recv();
11             if (resp) {
12                 var ses = resp.content();
13                 dojo.cookie(vendor, ses, {path: '/'});
14                 return callback(vendor,ses);
15             }
16         }
17     }).send();
18 }
19
20 // validate or initialize API session
21 // (check_session method will fallback to start_session if no session ID is provided)
22 function checkSession(vendor, callback) {
23     var ses = dojo.cookie(vendor) || null;
24     if (ses == null)
25         return startSession(vendor,callback);
26     console.log('checking ebook API session for ' + vendor);
27     new OpenSRF.ClientSession('open-ils.ebook_api').request({
28         method: 'open-ils.ebook_api.check_session',
29         params: [ ses, vendor, ou ],
30         async: false, // XXX
31         oncomplete: function(r) {
32             var resp = r.recv();
33             if (resp) {
34                 var new_ses = resp.content();
35                 dojo.cookie(vendor, new_ses, {path: '/'});
36                 return callback(vendor,new_ses);
37             }
38         }
39     }).send();
40 }