]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/services/user.js
LP#1350042 Browser client templates/scripts (phase 1)
[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             'standing_penalties',                                                  
15             'addresses',                                                           
16             'billing_address',                                                     
17             'mailing_address',                                                     
18             'stat_cat_entries',                                                    
19             'usr_activity' 
20         ]
21     };
22
23     service.get = function(userId, args) {
24         var deferred = $q.defer();
25
26         var fields = service.defaultFleshFields;
27         if (args) {
28             if (args.useFields) { 
29                 // overridde flesh fields
30                 fields = args.useFields; 
31             }
32             if (args.addFields) {
33                 // append flesh fields
34                 fields = fields.concat(args.addFields);
35             }
36         }
37             
38         egNet.request(
39             'open-ils.actor',
40             'open-ils.actor.user.fleshed.retrieve',
41             egAuth.token(), userId, fields).then(
42             function(user) {
43                 if (user && user.classname == 'au') {
44                     deferred.resolve(user);
45                 } else {
46                     deferred.reject(user);
47                 }
48             }
49         );
50
51         return deferred.promise;
52     };
53
54     return service;
55 }]);
56