Allow for project description change
[osm/UI.git] / skyquake / framework / core / modules / api / projectManagementAPI.js
index d73eb21..195f457 100644 (file)
@@ -36,7 +36,7 @@ ProjectManagement.get = function(req) {
                 uri: utils.confdPort(api_server) + '/api/operational/project',
                 method: 'GET',
                 headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
-                    'Authorization': req.get('Authorization')
+                    'Authorization': req.session && req.session.authorization
                 }),
                 forever: constants.FOREVER_ON,
                 rejectUnauthorized: false,
@@ -62,6 +62,7 @@ ProjectManagement.get = function(req) {
         });
     });
 };
+
 ProjectManagement.create = function(req) {
     var self = this;
     var api_server = req.query['api_server'];
@@ -75,7 +76,7 @@ ProjectManagement.create = function(req) {
                 uri: utils.confdPort(api_server) + '/api/config/project',
                 method: 'POST',
                 headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
-                    'Authorization': req.get('Authorization')
+                    'Authorization': req.session && req.session.authorization
                 }),
                 forever: constants.FOREVER_ON,
                 json: data,
@@ -103,26 +104,31 @@ ProjectManagement.create = function(req) {
     });
 };
 ProjectManagement.update = function(req) {
+    //"rw-project:project"
     var self = this;
     var api_server = req.query['api_server'];
     var bodyData = req.body;
-    data = {
-        "project":[bodyData]
+    var data = {
+        "rw-project:project" : {
+            "name": bodyData.name,
+            "description": bodyData.description,
+            "project-config": bodyData['project-config']
+        }
     }
     var updateTasks = [];
 
-    var updateUser = rp({
-                uri: utils.confdPort(api_server) + '/api/config/project',
+    var updateProject= rp({
+                uri: utils.confdPort(api_server) + '/api/config/project/',
                 method: 'PUT',
                 headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
-                    'Authorization': req.get('Authorization')
+                    'Authorization': req.session && req.session.authorization
                 }),
                 forever: constants.FOREVER_ON,
                 json: data,
                 rejectUnauthorized: false,
                 resolveWithFullResponse: true
             });
-    updateTasks.push(updateUser)
+    updateTasks.push(updateProject)
     return new Promise(function(resolve, reject) {
         Promise.all([
             updateTasks
@@ -157,7 +163,7 @@ ProjectManagement.delete = function(req) {
         _.extend(requestHeaders,
             constants.HTTP_HEADERS.accept.data,
             constants.HTTP_HEADERS.content_type.data, {
-                'Authorization': req.get('Authorization')
+                'Authorization': req.session && req.session.authorization
             });
         rp({
             url: url,
@@ -175,4 +181,96 @@ ProjectManagement.delete = function(req) {
         });
     })
 }
+
+
+ProjectManagement.getPlatform = function(req, userId) {
+    var self = this;
+    var api_server = req.query['api_server'];
+    var user = req.params['userId'] || userId;
+    return new Promise(function(resolve, reject) {
+        var url = utils.confdPort(api_server) + '/api/operational/rbac-platform-config';
+        if(user) {
+            url = url + '/user/' + user;
+        }
+        Promise.all([
+            rp({
+                uri: url,
+                method: 'GET',
+                headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
+                    'Authorization': req.session && req.session.authorization
+                }),
+                forever: constants.FOREVER_ON,
+                rejectUnauthorized: false,
+                resolveWithFullResponse: true
+            })
+        ]).then(function(result) {
+            var response = {};
+            response['data'] = {};
+            if (result[0].body) {
+                if(user) {
+                    response['data']['platform'] = JSON.parse(result[0].body)['rw-rbac-platform:user'];
+                } else {
+                    response['data']['platform'] = JSON.parse(result[0].body)['rw-rbac-platform:rbac-platform-config'];
+                }
+            }
+            response.statusCode = constants.HTTP_RESPONSE_CODES.SUCCESS.OK
+
+            resolve(response);
+        }).catch(function(error) {
+            var response = {};
+            console.log('Problem with ProjectManagement.getPlatform', error);
+            response.statusCode = error.statusCode || 500;
+            response.errorMessage = {
+                error: 'Failed to get ProjectManagement.getPlatform' + error
+            };
+            reject(response);
+        });
+    });
+};
+
+ProjectManagement.updatePlatform = function(req) {
+    var self = this;
+    var api_server = req.query['api_server'];
+    var bodyData = req.body;
+    data = bodyData;
+    data.user = JSON.parse(data.user)
+    var updateTasks = [];
+
+    var updatePlatform = rp({
+                uri: utils.confdPort(api_server) + '/api/config/rbac-platform-config',
+                method: 'PUT',
+                headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
+                    'Authorization': req.session && req.session.authorization
+                }),
+                forever: constants.FOREVER_ON,
+                json: data,
+                rejectUnauthorized: false,
+                resolveWithFullResponse: true
+            });
+    updateTasks.push(updatePlatform)
+    return new Promise(function(resolve, reject) {
+        Promise.all([
+            updateTasks
+        ]).then(function(result) {
+            var response = {};
+            response['data'] = {};
+            if (result[0].body) {
+                response['data'] = result[0].body;
+            }
+            response.statusCode = constants.HTTP_RESPONSE_CODES.SUCCESS.OK
+
+            resolve(response);
+        }).catch(function(error) {
+            var response = {};
+            console.log('Problem with ProjectManagement.updatePlatform', error);
+            response.statusCode = error.statusCode || 500;
+            response.errorMessage = {
+                error: 'Failed to passwordChange user' + error
+            };
+            reject(response);
+        });
+    });
+};
+
+
 module.exports = ProjectManagement;