diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index 405775ce2da299b3b7be51e38ec9f6d0457edaf8..160ab2668788977c2be6db15acf9ce96dad28879 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -93,20 +93,34 @@ ServerConnector.getMaxOverlayColorInt = function() { }); }; -ServerConnector.readFile = function(url, description) { +ServerConnector.sendGetRequest = function(url, description) { + return this.sendRequest({ + url : url, + description : description, + method : "GET" + }); +}; + +ServerConnector.sendRequest = function(params) { var self = this; + if (arguments.length > 1) { + return Promise.reject(new Error("Only two arguments are supported")); + } if (self.getSessionData().getToken() === undefined) { self.getSessionData().setLogin(undefined); window.location.reload(false); } - if (description === undefined) { - description = url; + var description = params.url; + if (params.description !== undefined) { + description = params.description; + params.description = undefined; } + var content; return self.callListeners("onDataLoadStart", description).then(function() { - return self._readFile(url); + return self._sendRequest(params); }).then(function(result) { content = result; return self.callListeners("onDataLoadStop", description); @@ -117,14 +131,12 @@ ServerConnector.readFile = function(url, description) { }).then(function() { return content; }); + }; -ServerConnector._readFile = function(url) { +ServerConnector._sendRequest = function(params) { return new Promise(function(resolve, reject) { - request({ - method : "GET", - url : url - }, function(error, response, body) { + request(params, function(error, response, body) { if (error) { reject(error); } else if (response.statusCode !== 200) { @@ -194,7 +206,7 @@ ServerConnector.sendPutRequest = function(url, params) { }); }; -ServerConnector.sendDeleteRequest = function(url, params) { +ServerConnector.sendDeleteRequest = function(url, json) { var self = this; if (self.getSessionData().getToken() === undefined) { self.getSessionData().setLogin(undefined); @@ -204,7 +216,7 @@ ServerConnector.sendDeleteRequest = function(url, params) { request({ method : "DELETE", url : url, - json : params, + json : json, }, function(error, response, body) { if (error) { reject(error); @@ -621,7 +633,7 @@ ServerConnector.getConfiguration = function(params) { } var self = this; if (this._configuration === undefined) { - return self.readFile(self.getConfigurationUrl()).then(function(content) { + return self.sendGetRequest(self.getConfigurationUrl()).then(function(content) { self._configuration = new Configuration(JSON.parse(content)); return Promise.resolve(self._configuration); }); @@ -643,7 +655,7 @@ ServerConnector.getModels = function(projectId) { var self = this; return self.getProjectId(projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getModelsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getModelsUrl(queryParams, filterParams)); }).then(function(content) { var models = []; var parsedJson = JSON.parse(content); @@ -661,7 +673,7 @@ ServerConnector.getProject = function(projectId) { var self = this; return self.getProjectId(projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getProjectUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getProjectUrl(queryParams, filterParams)); }).then(function(content) { var downloadedProject = new Project(content); if (self._projectsById[projectId] !== undefined) { @@ -698,7 +710,7 @@ ServerConnector.getProjects = function(reload) { if (self._projects.length > 0 && !reload) { return Promise.resolve(self._projects); } else { - return self.readFile(self.getProjectsUrl()).then(function(content) { + return self.sendGetRequest(self.getProjectsUrl()).then(function(content) { var parsedData = JSON.parse(content); self._projects.length = 0; for (var i = 0; i < parsedData.length; i++) { @@ -722,7 +734,7 @@ ServerConnector.getProjectStatistics = function(projectId) { var content; return self.getProjectId(projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getProjectStatisticsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getProjectStatisticsUrl(queryParams, filterParams)); }).then(function(result) { content = JSON.parse(result); return self.getConfiguration(); @@ -750,7 +762,7 @@ ServerConnector.getUser = function(login) { }; var filterParams = {}; - return self.readFile(self.getUserUrl(queryParams, filterParams)).then(function(content) { + return self.sendGetRequest(self.getUserUrl(queryParams, filterParams)).then(function(content) { var obj = JSON.parse(content); return new User(obj); }); @@ -763,7 +775,7 @@ ServerConnector.getOverlays = function(projectId) { return new Promise(function(resolve, reject) { self.getProjectId(projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getOverlaysUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getOverlaysUrl(queryParams, filterParams)); }).then(function(content) { var arr = JSON.parse(content); var result = []; @@ -788,7 +800,7 @@ ServerConnector.getOverlayElements = function(overlayId, projectId) { var filterParams = {}; return self.getProjectId(projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getOverlayElementsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getOverlayElementsUrl(queryParams, filterParams)); }).then(function(content) { var arr = JSON.parse(content); var result = []; @@ -818,7 +830,7 @@ ServerConnector.getFullOverlayElement = function(params) { return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getFullOverlayElementUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getFullOverlayElementUrl(queryParams, filterParams)); }).then(function(content) { var element = JSON.parse(content); var result = null; @@ -864,7 +876,7 @@ ServerConnector.getOverlayById = function(overlayId, projectId) { var filterParams = {}; return self.getProjectId(projectId).then(function(data) { queryParams.projectId = data; - return self.readFile(self.getOverlayByIdUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getOverlayByIdUrl(queryParams, filterParams)); }).then(function(content) { return new LayoutData(JSON.parse(content)); }); @@ -889,7 +901,7 @@ ServerConnector.getReactions = function(params) { if (filterParams.id.length > 100 || filterParams.participantId.length > 100) { return self.sendPostRequest(self.getReactionsUrl(queryParams), filterParams); } else { - return self.readFile(self.getReactionsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getReactionsUrl(queryParams, filterParams)); } }).then(function(content) { @@ -929,7 +941,7 @@ ServerConnector.getAliases = function(params) { if (filterParams.id.length > 100) { return self.sendPostRequest(self.getAliasesUrl(queryParams), filterParams); } else { - return self.readFile(self.getAliasesUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getAliasesUrl(queryParams, filterParams)); } }).then(function(content) { var array = JSON.parse(content); @@ -958,7 +970,7 @@ ServerConnector.getComments = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getCommentsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getCommentsUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -990,7 +1002,7 @@ ServerConnector.getClosestElementsByCoordinates = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -1042,7 +1054,7 @@ ServerConnector.getElementsByQuery = function(params) { return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -1061,7 +1073,7 @@ ServerConnector.getDrugsByQuery = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchDrugsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchDrugsUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -1080,7 +1092,7 @@ ServerConnector.getMiRnasByQuery = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchMiRnasUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchMiRnasUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -1099,7 +1111,7 @@ ServerConnector.getChemicalsByQuery = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchChemicalsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchChemicalsUrl(queryParams, filterParams)); }).then(function(content) { var array = JSON.parse(content); var result = []; @@ -1198,7 +1210,7 @@ ServerConnector.getDrugNamesByTarget = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchDrugsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchDrugsUrl(queryParams, filterParams)); }).then(function(content) { var result = []; var object = JSON.parse(content); @@ -1218,7 +1230,7 @@ ServerConnector.getMiRnaNamesByTarget = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchMiRnasUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchMiRnasUrl(queryParams, filterParams)); }).then(function(content) { var result = []; var object = JSON.parse(content); @@ -1238,7 +1250,7 @@ ServerConnector.getChemicalNamesByTarget = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getSearchChemicalsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getSearchChemicalsUrl(queryParams, filterParams)); }).then(function(content) { var result = []; var object = JSON.parse(content); @@ -1334,7 +1346,7 @@ ServerConnector.getSuggestedQueryList = function(projectId) { var self = this; return self.getProjectId(projectId).then(function(result) { projectId = result; - return self.readFile(self.getSuggestedQueryListUrl({ + return self.sendGetRequest(self.getSuggestedQueryListUrl({ projectId : projectId })); }).then(function(content) { @@ -1365,7 +1377,7 @@ ServerConnector.getPublications = function(params) { }; return self.getProjectId(params.projectId).then(function(result) { queryParams.projectId = result; - return self.readFile(self.getPublicationsUrl(queryParams, filterParams)); + return self.sendGetRequest(self.getPublicationsUrl(queryParams, filterParams)); }).then(function(content) { return JSON.parse(content); }); @@ -1374,7 +1386,7 @@ ServerConnector.getPublications = function(params) { ServerConnector.getReferenceGenome = function(params) { var self = this; var filterParams = {}; - return self.readFile(self.getReferenceGenomeUrl(params, filterParams)).then(function(content) { + return self.sendGetRequest(self.getReferenceGenomeUrl(params, filterParams)).then(function(content) { return new ReferenceGenome(JSON.parse(content)); }); }; diff --git a/frontend-js/src/test/js/ServerConnector-mock.js b/frontend-js/src/test/js/ServerConnector-mock.js index b77bd3b4d42cda4d9312e16230f6baf967a69340..9e227852697fc3c1ba2793728869b2434b2aa027 100644 --- a/frontend-js/src/test/js/ServerConnector-mock.js +++ b/frontend-js/src/test/js/ServerConnector-mock.js @@ -30,7 +30,14 @@ function urlToFileName(url) { return replaceAsterisk(result); } -ServerConnectorMock._readFile = function(url) { +ServerConnectorMock._sendRequest = function(params) { + var url = params.url; + var prefix = params.method; + if (prefix==="GET") { + prefix = ""; + } else { + prefix +="_"; + } return new Promise(function(resolve, reject) { if (url.indexOf("http") === 0) { request.get(url, function(error, response, body) { diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js index 1518d2ead490d316d589fa552ee69c1f34d454e8..4ac442e701a3b947299dbdd595b4a3ad3508aa1f 100644 --- a/frontend-js/src/test/js/ServerConnector-test.js +++ b/frontend-js/src/test/js/ServerConnector-test.js @@ -118,7 +118,7 @@ describe('ServerConnector', function() { }).then(function(url) { assert.ok(url); assert.ok(url.indexOf(id) >= 0); - return ServerConnector.readFile(url); + return ServerConnector.sendGetRequest(url); }); }); @@ -130,7 +130,7 @@ describe('ServerConnector', function() { }).then(function(url) { assert.ok(url); assert.ok(url.indexOf(modelId) >= 0); - return ServerConnector.readFile(url); + return ServerConnector.sendGetRequest(url); }); }); @@ -142,14 +142,14 @@ describe('ServerConnector', function() { }).then(function(url) { assert.ok(url); assert.ok(url.indexOf(modelId) >= 0); - return ServerConnector.readFile(url); + return ServerConnector.sendGetRequest(url); }); }); it('getProjectSourceDownloadUrl', function() { return ServerConnector.getProjectSourceDownloadUrl().then(function(url) { assert.ok(url); - return ServerConnector.readFile(url); + return ServerConnector.sendGetRequest(url); }); }); @@ -276,7 +276,7 @@ describe('ServerConnector', function() { it('check session expired', function() { ServerConnector.getSessionData().setToken(undefined); assert.ok(ServerConnector.getSessionData().getLogin()) - return ServerConnector.readFile("package.json", "Downloading projects").then(function() { + return ServerConnector.sendGetRequest("package.json", "Downloading projects").then(function() { assert.notOk(ServerConnector.getSessionData().getLogin()) }); }); diff --git a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js index bf7b6b407a8f8ca0a894dd8a9aae5a33f747fd19..388d4e32c238af5a7a21a374a8486959425b4bd9 100644 --- a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js @@ -109,7 +109,7 @@ describe('OverlayPanel', function() { customMap : map }); - return ServerConnector.readFile("testFiles/overlay/good.txt").then(function(fileContent) { + return ServerConnector.sendGetRequest("testFiles/overlay/good.txt").then(function(fileContent) { var obj = panel.parseFile(fileContent); assert.equal(obj.name, "example name"); assert.equal(obj.description, "layout description"); diff --git a/frontend-js/src/test/js/map/data/Project-test.js b/frontend-js/src/test/js/map/data/Project-test.js index 7d9b9b0481c182787511d81530722aafdada6dd0..f498364fbe53ef7d500578d8297bae07561ef504 100644 --- a/frontend-js/src/test/js/map/data/Project-test.js +++ b/frontend-js/src/test/js/map/data/Project-test.js @@ -10,7 +10,7 @@ var assert = chai.assert; describe('Project', function() { describe("constructor", function() { it("default", function() { - return ServerConnector.readFile("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { + return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { var project = new Project(res); assert.ok(project); @@ -24,7 +24,7 @@ describe('Project', function() { }); }); it("from Project obj", function() { - return ServerConnector.readFile("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { + return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { var tmpProject = new Project(res); var project = new Project(tmpProject);