]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/opac/ebook_api/relation.js
LP#1541559: ebook API integration for TPAC
[Evergreen.git] / Open-ILS / web / js / ui / default / opac / ebook_api / relation.js
1 function Relation(vendor, patron_id) {
2     this.vendor = vendor;
3     this.patron_id = patron_id;
4     this.checkouts = [];
5     this.holds_pending = [];
6     this.holds_ready = [];
7 }
8
9 Relation.prototype.getCheckouts = function(callback) {
10     var ses = dojo.cookie(this.vendor);
11     var rel = this;
12     new OpenSRF.ClientSession('open-ils.ebook_api').request({
13         method: 'open-ils.ebook_api.patron.get_checkouts',
14         params: [ authtoken, ses, rel.patron_id ],
15         async: false,
16         oncomplete: function(r) {
17             var resp = r.recv();
18             if (resp) {
19                 console.log('retrieved checkouts for patron');
20                 rel.checkouts = [];
21                 dojo.forEach(resp.content(), function(checkout) {
22                     rel.checkouts.push(checkout);
23                 });
24                 return callback(rel);
25             }
26         }
27     }).send();
28 }
29
30 Relation.prototype.getHolds = function(callback) {
31     var ses = dojo.cookie(this.vendor);
32     var rel = this;
33     new OpenSRF.ClientSession('open-ils.ebook_api').request({
34         method: 'open-ils.ebook_api.patron.get_holds',
35         params: [ authtoken, ses, rel.patron_id ],
36         async: false,
37         oncomplete: function(r) {
38             var resp = r.recv();
39             if (resp) {
40                 console.log('retrieved holds for patron');
41                 dojo.forEach(resp.content(), function(hold) {
42                     if (hold.is_ready === 1) {
43                         rel.holds_ready.push(hold);
44                     } else {
45                         rel.holds_pending.push(hold);
46                     }
47                 });
48                 return callback(rel);
49             }
50         }
51     }).send();
52 }
53
54 Relation.prototype.getTransactions = function(callback) {
55     var ses = dojo.cookie(this.vendor);
56     var rel = this;
57     new OpenSRF.ClientSession('open-ils.ebook_api').request({
58         method: 'open-ils.ebook_api.patron.get_transactions',
59         params: [ authtoken, ses, rel.patron_id ],
60         async: false,
61         oncomplete: function(r) {
62             var resp = r.recv();
63             if (resp) {
64                 console.log('retrieved holds for patron');
65                 var xacts = resp.content();
66                 dojo.forEach(xacts.checkouts, function(checkout) {
67                     rel.checkouts.push(checkout);
68                 });
69                 dojo.forEach(xacts.holds, function(hold) {
70                     if (hold.is_ready === 1) {
71                         rel.holds_ready.push(hold);
72                     } else {
73                         rel.holds_pending.push(hold);
74                     }
75                 });
76                 return callback(rel);
77             }
78         }
79     }).send();
80 }