RIFT-16227: Fix RPC's for project context in UI
[osm/UI.git] / skyquake / plugins / accounts / api / accounts.js
index 83e841e..d26b566 100644 (file)
@@ -28,7 +28,7 @@ var ConfigAgent = require('./config_agent/configAgent')
 var Accounts = {};
 var nameSpace = {
     cloud: 'cloud',
-    sdn: 'sdn-account',
+    sdn: 'sdn',
     'config-agent': 'config-agent'
 };
 Accounts.get = function(req) {
@@ -85,11 +85,7 @@ function getAccount(req) {
         var id = req.params.id || req.params.name;
         var requestHeaders = {};
         var type = nameSpace[req.params.type];
-        var url = utils.confdPort(api_server) + '/api/operational/' + type;
-        //SDN model doesn't follow convention
-        if (type != 'sdn-account') {
-            url += '/account';
-        }
+        var url = utils.confdPort(api_server) + '/api/operational/' + type + '/account';
         if (id) {
             url += '/' + id;
         }
@@ -97,12 +93,12 @@ function getAccount(req) {
         _.extend(
             requestHeaders,
             id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, {
-                'Authorization': req.get('Authorization')
+                'Authorization': req.session && req.session.authorization
             }
         );
 
         request({
-                url: url + '?deep',
+                url: utils.projectContextUrl(req, url + '?deep'),
                 type: 'GET',
                 headers: requestHeaders,
                 forever: constants.FOREVER_ON,
@@ -112,16 +108,12 @@ function getAccount(req) {
                 var data;
                 var objKey = 'rw-' + type + ':account';
                 //SDN model doesn't follow convention
-                if (type == 'sdn-account') {
-                    objKey = 'rw-sdn:sdn-account';
-                }
                 if (utils.validateResponse(type.toUpperCase() + '.get', error, response, body, resolve, reject)) {
                     try {
                         data = JSON.parse(response.body);
                         if (!id) {
                             data = data.collection;
                         }
-
                         data = data[objKey]
                     } catch (e) {
                         console.log('Problem with "' + type.toUpperCase() + '.get"', e);
@@ -152,27 +144,14 @@ function updateAccount(req) {
     var url = utils.confdPort(api_server) + '/api/config/' + type;
     var method = 'POST'
     if (!id) {
-        if (type == 'sdn-account') {
-            createData = {
-                'sdn-account': Array.isArray(data) ? data : [data]
-            }
-        } else {
-            createData = {
-                'account': Array.isArray(data) ? data : [data]
-            }
+        createData = {
+            'account': Array.isArray(data) ? data : [data]
         }
         console.log('Creating ' + type + ' account: ', createData);
     } else {
         method = 'PUT';
-        if (type == 'sdn-account') {
-            url += '/' + id;
-            createData['rw-sdn:sdn-account'] = Array.isArray(data) ? data : [data];
-
-        } else {
-            url += '/account/' + id;
-            createData['rw-' + type + ':account'] = Array.isArray(data) ? data : [data];
-        }
-        //createData = createData[0];
+        url += '/account/' + id;
+        createData['rw-' + type + ':account'] = Array.isArray(data) ? data : [data];
     }
 
 
@@ -181,10 +160,10 @@ function updateAccount(req) {
         _.extend(requestHeaders,
             constants.HTTP_HEADERS.accept.data,
             constants.HTTP_HEADERS.content_type.data, {
-                'Authorization': req.get('Authorization')
+                'Authorization': req.session && req.session.authorization
             });
         request({
-            url: url,
+            url: utils.projectContextUrl(req, url),
             method: method,
             headers: requestHeaders,
             forever: constants.FOREVER_ON,
@@ -210,19 +189,15 @@ function deleteAccount(req) {
     var requestHeaders = {};
     var createData = {};
     var url = utils.confdPort(api_server) + '/api/config/' + type;
-    if (type == 'sdn-account') {
-        url += '/' + id;
-    } else {
-        url += '/account/' + id;
-    }
+    url += '/account/' + id;
     return new Promise(function(resolve, reject) {
         _.extend(requestHeaders,
             constants.HTTP_HEADERS.accept.data,
             constants.HTTP_HEADERS.content_type.data, {
-                'Authorization': req.get('Authorization')
+                'Authorization': req.session && req.session.authorization
             });
         request({
-            url: url,
+            url: utils.projectContextUrl(req, url),
             method: 'DELETE',
             headers: requestHeaders,
             forever: constants.FOREVER_ON,
@@ -263,13 +238,17 @@ function refreshAccountConnectionStatus (req) {
     var headers = _.extend({},
         constants.HTTP_HEADERS.accept.data,
         constants.HTTP_HEADERS.content_type.data, {
-            'Authorization': req.get('Authorization')
+            'Authorization': req.session && req.session.authorization
         }
     );
+    var uri = utils.projectContextUrl(req, utils.confdPort(api_server) + '/api/operations/' + rpcInfo[Type].rpc);
+    
+    jsonData['input'] = utils.addProjectContextToRPCPayload(req, uri, jsonData['input']);
+
     return new Promise(function(resolve, reject) {
 
         request({
-            uri: utils.confdPort(api_server) + '/api/operations/' + rpcInfo[Type].rpc,
+            uri: uri,
             method: 'POST',
             headers: headers,
             forever: constants.FOREVER_ON,