Fixed diagnostic dashboard

Change-Id: Ic46da11d822fd5b4e381a5846dfe4203d03a8849
diff --git a/views/ngXosViews/diagnostic/src/js/rest_services.js b/views/ngXosViews/diagnostic/src/js/rest_services.js
index fa2fc8f..50a276c 100644
--- a/views/ngXosViews/diagnostic/src/js/rest_services.js
+++ b/views/ngXosViews/diagnostic/src/js/rest_services.js
@@ -163,80 +163,30 @@
       }
     });
   })
-  .service('Subscribers', function($resource, $q, SubscriberDevice){
-    return $resource('/xoslib/cordsubscriber/:id', {id: '@id'}, {
-      update: {
-        method: 'PUT',
-        isArray: false
-      },
-      queryWithDevices: {
-        method: 'GET',
-        isArray: true,
-        interceptor: {
-          response: function(res){
+  // TODO extend the resource in xosLib
+  .service('SubscribersWithDevice', function($http, $q, Subscribers){
 
-            /**
-            * For each subscriber retrieve devices and append them
-            */
+    this.get = (s) => {
+      const d = $q.defer();
+      let subscriber;
 
-            let deferred = $q.defer();
+      Subscribers.get({id: s.id}).$promise
+      .then(res => {
+        subscriber = res;
+        return $http.get(`/api/tenant/cord/subscriber/${subscriber.id}/devices/`);
+      })
+      .then(res => {
+        res.data.map(d => d.type = 'device');
+        subscriber.devices = res.data;
+        subscriber.type = 'subscriber';
+        d.resolve(subscriber);
+      })
+      .catch(err => {
+        d.reject(err);
+      });
+      return {$promise: d.promise};
+    };
 
-            let requests = [];
-
-            angular.forEach(res.data, (subscriber) => {
-              requests.push(SubscriberDevice.query({id: subscriber.id}).$promise);
-            })
-
-            $q.all(requests)
-            .then((list) => {
-
-              // adding devices
-
-              res.data.map((subscriber, i) => {
-                subscriber.devices = list[i];
-                subscriber.type = 'subscriber';
-
-                subscriber.devices.map(d => d.type = 'device')
-
-                return subscriber;
-              });
-
-              // faking to have 2 subscriber
-              // res.data.push(angular.copy(res.data[0]));
-
-              deferred.resolve(res.data);
-            })
-
-            return deferred.promise;
-          }
-        }
-      },
-      getWithDevices: {
-        method: 'GET',
-        isArray: false,
-        interceptor: {
-          response: (res) => {
-            let d = $q.defer();
-
-            SubscriberDevice.query({id: res.data.id}).$promise
-            .then(devices => {
-              devices.map(d => d.type = 'device');
-              res.data.devices = devices;
-              res.data.type = 'subscriber';
-              d.resolve(res.data);
-            })
-            .catch(err => {
-              d.reject(err);
-            });
-
-            return d.promise;
-          }
-        }
-      }
-    });
-  })
-  .service('SubscriberDevice', function($resource){
-    return $resource('/xoslib/rs/subscriber/:id/users/', {id: '@id'});
   })
   .service('ServiceRelation', function($q, _, Services, Tenant, Slice, Instances){