Matteo Scandolo | 680cd92 | 2016-01-26 17:21:39 -0800 | [diff] [blame] | 1 | "use strict"; |
| 2 | |
| 3 | angular.module('cordRest', []) |
Matteo Scandolo | 0f9b085 | 2016-01-27 13:51:07 -0800 | [diff] [blame^] | 4 | .service('User', function($http, $q, $cookies, cordConfig){ |
Matteo Scandolo | bc56685 | 2016-01-27 12:00:18 -0800 | [diff] [blame] | 5 | this.login = function(username, password){ |
| 6 | var deferred = $q.defer(); |
| 7 | |
| 8 | $http.post(cordConfig.url + '/xoslib/login/', {username: username, password: password}) |
| 9 | .then(function(res){ |
Matteo Scandolo | 0f9b085 | 2016-01-27 13:51:07 -0800 | [diff] [blame^] | 10 | $cookies.put('user', res.data.user); |
| 11 | deferred.resolve(JSON.parse(res.data.user)); |
Matteo Scandolo | bc56685 | 2016-01-27 12:00:18 -0800 | [diff] [blame] | 12 | }) |
| 13 | .catch(function(e){ |
| 14 | throw new Error(e); |
| 15 | }); |
| 16 | |
| 17 | return deferred.promise; |
| 18 | }; |
Matteo Scandolo | 0f9b085 | 2016-01-27 13:51:07 -0800 | [diff] [blame^] | 19 | |
| 20 | this.isLoggedIn = function(){ |
| 21 | var user = $cookies.get('user'); |
| 22 | if( angular.isDefined(user)){ |
| 23 | return true; |
| 24 | } |
| 25 | return false; |
| 26 | }; |
| 27 | |
| 28 | this.logout = function(){ |
| 29 | var deferred = $q.defer(); |
| 30 | $cookies.remove('user'); |
| 31 | deferred.resolve(); |
| 32 | return deferred.promise; |
| 33 | }; |
Matteo Scandolo | bc56685 | 2016-01-27 12:00:18 -0800 | [diff] [blame] | 34 | }) |
Matteo Scandolo | 680cd92 | 2016-01-26 17:21:39 -0800 | [diff] [blame] | 35 | .service('Subscribers', function($resource, cordConfig){ |
| 36 | return $resource(cordConfig.url + '/xoslib/rs/subscriber'); |
| 37 | }) |
| 38 | .service('SubscriberUsers', function($resource, cordConfig){ |
Matteo Scandolo | bc56685 | 2016-01-27 12:00:18 -0800 | [diff] [blame] | 39 | // TODO define an interceptor as res.users should be resources |
Matteo Scandolo | 680cd92 | 2016-01-26 17:21:39 -0800 | [diff] [blame] | 40 | // NOTE SubscriberId should ne retrieved from login information |
| 41 | return $resource(cordConfig.url + '/xoslib/rs/subscriber/:subscriberId/users/:id', {}, { |
| 42 | query: { |
| 43 | method: 'GET', |
| 44 | isArray: false |
| 45 | } |
| 46 | }); |
Matteo Scandolo | bc56685 | 2016-01-27 12:00:18 -0800 | [diff] [blame] | 47 | //return $resource(cordConfig.url + '/xoslib/corduser/:id') |
| 48 | }) |
| 49 | .service('SubscriberUsersUrlFilterLevel', function($resource, cordConfig){ |
| 50 | return $resource(cordConfig.url + '/xoslib/rs/subscriber/:subscriberId/users/:userId/url_filter/'); |
Matteo Scandolo | 680cd92 | 2016-01-26 17:21:39 -0800 | [diff] [blame] | 51 | }); |