]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/opac/ebook_api/relation.js
LP#1673870: Link ebook transaction objects to vendor in JS
[working/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                     checkout.vendor = rel.vendor;
23                     rel.checkouts.push(checkout);
24                 });
25                 return callback(rel);
26             }
27         }
28     }).send();
29 }
30
31 Relation.prototype.getHolds = function(callback) {
32     var ses = dojo.cookie(this.vendor);
33     var rel = this;
34     new OpenSRF.ClientSession('open-ils.ebook_api').request({
35         method: 'open-ils.ebook_api.patron.get_holds',
36         params: [ authtoken, ses, rel.patron_id ],
37         async: false,
38         oncomplete: function(r) {
39             var resp = r.recv();
40             if (resp) {
41                 console.log('retrieved holds for patron');
42                 dojo.forEach(resp.content(), function(hold) {
43                     hold.vendor = rel.vendor;
44                     if (hold.is_ready === 1) {
45                         rel.holds_ready.push(hold);
46                     } else {
47                         rel.holds_pending.push(hold);
48                     }
49                 });
50                 return callback(rel);
51             }
52         }
53     }).send();
54 }
55
56 Relation.prototype.getTransactions = function(callback) {
57     var ses = dojo.cookie(this.vendor);
58     var rel = this;
59     new OpenSRF.ClientSession('open-ils.ebook_api').request({
60         method: 'open-ils.ebook_api.patron.get_transactions',
61         params: [ authtoken, ses, rel.patron_id ],
62         async: false,
63         oncomplete: function(r) {
64             var resp = r.recv();
65             if (resp) {
66                 console.log('retrieved holds for patron');
67                 var xacts = resp.content();
68                 dojo.forEach(xacts.checkouts, function(checkout) {
69                     checkout.vendor = rel.vendor;
70                     rel.checkouts.push(checkout);
71                 });
72                 dojo.forEach(xacts.holds, function(hold) {
73                     hold.vendor = rel.vendor;
74                     if (hold.is_ready === 1) {
75                         rel.holds_ready.push(hold);
76                     } else {
77                         rel.holds_pending.push(hold);
78                     }
79                 });
80                 return callback(rel);
81             }
82         }
83     }).send();
84 }