]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/services/user.js
LP#1526185 Disable second toast on permfail
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / services / user.js
1 /** 
2  * Service for fetching fleshed user objects.
3  */
4
5 angular.module('egUserMod', ['egCoreMod'])
6
7 .factory('egUser', 
8        ['$q','$timeout','egNet','egAuth','egOrg',
9 function($q,  $timeout,  egNet,  egAuth,  egOrg) {
10
11     var service = {
12         defaultFleshFields : [
13             'card',                                                                
14             'settings',
15             'standing_penalties',                                                  
16             'addresses',                                                           
17             'billing_address',                                                     
18             'mailing_address',                                                     
19             'stat_cat_entries',                                                    
20             'usr_activity' 
21         ]
22     };
23
24     service.format_name = function(patron_obj) {
25         var patron_name = ( patron_obj.prefix() ? patron_obj.prefix() + ' ' : '') +
26             patron_obj.family_name() + ', ' +
27             patron_obj.first_given_name() + ' ' +
28             ( patron_obj.second_given_name() ? patron_obj.second_given_name() + ' ' : '' ) +
29             ( patron_obj.suffix() ? patron_obj.suffix() : '');
30         return patron_name;
31     };
32
33     service.get = function(userId, args) {
34         var deferred = $q.defer();
35
36         if (!userId) deferred.reject();
37
38         var fields = service.defaultFleshFields;
39         if (args) {
40             if (args.useFields) { 
41                 // overridde flesh fields
42                 fields = args.useFields; 
43             }
44             if (args.addFields) {
45                 // append flesh fields
46                 fields = fields.concat(args.addFields);
47             }
48         }
49             
50         egNet.request(
51             'open-ils.actor',
52             'open-ils.actor.user.fleshed.retrieve',
53             egAuth.token(), userId, fields).then(
54             function(user) {
55                 if (user && user.classname == 'au') {
56                     deferred.resolve(user);
57                 } else {
58                     deferred.reject(user);
59                 }
60             }
61         );
62
63         return deferred.promise;
64     };
65
66     service.getByBarcode = function(barcode, args) {
67         return egNet.request(
68             'open-ils.pcrud',
69             'open-ils.pcrud.search.ac.atomic',
70             egAuth.token(), {barcode:barcode}
71         ).then( function(card) {
72             if (card && angular.isArray(card) && card[0] && card[0].classname == 'ac') {
73                 return service.get(card[0].usr(), args)
74             }
75             return service.get(null);
76         }) 
77     };
78
79     return service;
80 }]);
81