X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Faccounts%2Fsrc%2Faccount%2FaccountSource.js;h=854a5eb6fd7fa848058231741254381b248efe41;hp=5fa7869f3a3dca576a07307db5aa8a95816c8a70;hb=055edc5253e2341b4fa3e9240ad4843adac89c51;hpb=e29efc315df33d546237e270470916e26df391d6 diff --git a/skyquake/plugins/accounts/src/account/accountSource.js b/skyquake/plugins/accounts/src/account/accountSource.js index 5fa7869f3..854a5eb6f 100644 --- a/skyquake/plugins/accounts/src/account/accountSource.js +++ b/skyquake/plugins/accounts/src/account/accountSource.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -34,14 +34,15 @@ module.exports = function(Alt) { return new Promise(function(resolve, reject) { //If socket connection already exists, eat the request. if(state.socket) { + console.log('connection already exists') return resolve(false); } $.ajax({ - url: '//' + window.location.hostname + ':' + NODE_PORT + '/socket-polling?api_server=' + API_SERVER , + url: '/socket-polling', type: 'POST', beforeSend: Utils.addAuthorizationStub, data: { - url:window.location.protocol + '//' + window.location.host + '/accounts/all?api_server=' + API_SERVER + url: 'accounts/all?api_server=' + API_SERVER }, success: function(data, textStatus, jqXHR) { Utils.checkAndResolveSocketRequest(data, resolve, reject); @@ -49,6 +50,7 @@ module.exports = function(Alt) { }).fail(function(xhr){ //Authentication and the handling of fail states should be wrapped up into a connection class. Utils.checkAuthentication(xhr.status); + reject(xhr.responseText || 'An error occurred. Check your logs for more information'); });; }); }, @@ -74,7 +76,7 @@ module.exports = function(Alt) { } function refreshStatus(type, name) { - let url = type + '/' + name + '/refresh?api_server=' + API_SERVER; + let url = type + '/' + encodeURIComponent(name) + '/refresh?api_server=' + API_SERVER; setTimeout(function(){ Refreshing.next(); },100); @@ -100,7 +102,7 @@ module.exports = function(Alt) { remote: function(state, name, type) { return new Promise(function(resolve, reject) { $.ajax({ - url: type + '/' + name + '/refresh?api_server=' + API_SERVER, + url: type + '/' + encodeURIComponent(name) + '/refresh?api_server=' + API_SERVER, type: 'POST', beforeSend: Utils.addAuthorizationStub, success: function(account) { @@ -115,12 +117,21 @@ module.exports = function(Alt) { create: { remote: function(state, account, type, cb) { delete account['connection-status']; + var payload = account; + var accountKey = payload.hasOwnProperty('account-type') ? 'account-type' : 'ro-account-type'; + var payloadKeys = Object.keys(payload[payload[accountKey]]); + var accountData = payload[payload[accountKey]]; + payloadKeys.map(function(k) { + if (!accountData[k] || accountData[k].trim() == '') { + delete payload[payload[accountKey]][k]; + } + }); return new Promise(function(resolve, reject) { $.ajax({ url: type + '?api_server=' + API_SERVER, type:'POST', beforeSend: Utils.addAuthorizationStub, - data: JSON.stringify(account), + data: JSON.stringify(payload), contentType: "application/json", success: function(data) { resolve({data, cb}); @@ -132,7 +143,7 @@ module.exports = function(Alt) { }).fail(function(xhr){ //Authentication and the handling of fail states should be wrapped up into a connection class. Utils.checkAuthentication(xhr.status); - reject(); + reject(xhr.responseText || 'An error occurred. Check your logs for more information'); }); }); @@ -144,9 +155,12 @@ module.exports = function(Alt) { update: { remote: function(state, account, type, cb) { var payload = Object.assign({}, account); + delete payload["instance-ref-count"] delete payload['connection-status']; delete payload['params']; delete payload['pools']; + delete payload['datacenters']; + delete payload['config-data']; ( (payload.nestedParams == null) && delete payload.nestedParams @@ -158,10 +172,17 @@ module.exports = function(Alt) { delete payload.nestedParams ); + var payloadKeys = Object.keys(payload[payload['account-type']]); + var accountData = payload[payload['account-type']]; + payloadKeys.map(function(k) { + if (!accountData[k] || (accountData[k].trim && accountData[k].trim() == '')) { + delete payload[payload['account-type']][k]; + } + }); return new Promise(function(resolve, reject) { $.ajax({ - url: type + '/' + account.name + '?api_server=' + API_SERVER, + url: type + '/' + encodeURIComponent(account.name) + '?api_server=' + API_SERVER, type:'PUT', beforeSend: Utils.addAuthorizationStub, data: JSON.stringify(payload), @@ -171,12 +192,11 @@ module.exports = function(Alt) { }, error: function(error) { console.log("There was an error updating the account: ", arguments); - } }).fail(function(xhr){ //Authentication and the handling of fail states should be wrapped up into a connection class. Utils.checkAuthentication(xhr.status); - reject('error'); + reject(xhr.responseText || 'An error occurred. Check your logs for more information'); }); }); @@ -186,13 +206,13 @@ module.exports = function(Alt) { }), success: Alt.actions.global.createAccountSuccess, loading: Alt.actions.global.createAccountLoading, - error: Alt.actions.global.showNotification + error: Alt.actions.global.createAccountFail }, delete: { remote: function(state, type, name, cb) { return new Promise(function(resolve, reject) { $.ajax({ - url: type + '/' + name + '/?api_server=' + API_SERVER, + url: type + '/' + encodeURIComponent(name) + '/?api_server=' + API_SERVER, type:'DELETE', dataType : 'html', beforeSend: Utils.addAuthorizationStub, @@ -203,7 +223,7 @@ module.exports = function(Alt) { }).fail(function(xhr){ //Authentication and the handling of fail states should be wrapped up into a connection class. Utils.checkAuthentication(xhr.status); - reject('error'); + reject(xhr.responseText || 'An error occurred. Check your logs for more information'); }); }) }, @@ -211,7 +231,7 @@ module.exports = function(Alt) { 'error': 'Something went wrong while trying to delete the account. Check the error logs for more information' }), success: Alt.actions.global.deleteAccountSuccess, loading: Alt.actions.global.deleteAccountLoading, - error: Alt.actions.global.showNotification + error: Alt.actions.global.deleteAccountFail } } }