Added subscriber S/C tags
diff --git a/views/ngXosViews/diagnostic/src/js/rest_services.js b/views/ngXosViews/diagnostic/src/js/rest_services.js
index 885b3de..877b485 100644
--- a/views/ngXosViews/diagnostic/src/js/rest_services.js
+++ b/views/ngXosViews/diagnostic/src/js/rest_services.js
@@ -28,6 +28,16 @@
             return instances;
           }
         }
+      },
+      getSubscriberTag: {
+        method: 'GET',
+        isArray: true,
+        interceptor: {
+          response: (res) => {
+            // NOTE we should receive only one vOLT tenant here
+            return JSON.parse(res.data[0].service_specific_attribute);
+          }
+        }
       }
     });
   })
@@ -127,7 +137,7 @@
     });
   })
   .service('Subscribers', function($resource, $q, SubscriberDevice){
-    return $resource('/xos/subscribers', {id: '@id'}, {
+    return $resource('/xos/subscribers/:id', {id: '@id'}, {
       queryWithDevices: {
         method: 'GET',
         isArray: true,
@@ -138,7 +148,7 @@
             * For each subscriber retrieve devices and append them
             */
 
-            const deferred = $q.defer();
+            let deferred = $q.defer();
 
             let requests = [];
 
@@ -169,6 +179,29 @@
             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';
+              console.log(res.data);
+              d.resolve(res.data);
+            })
+            .catch(err => {
+              d.reject(err);
+            });
+
+            return d.promise;
+          }
+        }
       }
     });
   })
@@ -289,13 +322,20 @@
 
       // TODO refactor
       const buildChild = (services, tenants, currentService) => {
+
+        const response = {
+          type: 'service',
+          name: currentService.humanReadableName,
+          service: currentService
+        };
+
         let tenant = lodash.find(tenants, {subscriber_service: currentService.id});
         if(tenant){
           let next = lodash.find(services, {id: tenant.provider_service});
-          currentService.children = [buildChild(services, tenants, next)];
+          response.children = [buildChild(services, tenants, next)];
         }
         else {
-          currentService.children = [
+          response.children = [
             {
               name: 'Router',
               type: 'router',
@@ -303,9 +343,8 @@
             }
           ]
         }
-        currentService.type = 'service';
         delete currentService.id; // conflict with d3
-        return currentService;
+        return response;
       }
       let baseService = lodash.find(services, {id: 3});