diff --git a/openbis/source/javascript/openbis.js b/openbis/source/javascript/openbis.js index d7e0c7b9702c34a5fcabfb455b6fe36a461f05d6..a04bab170977fc05021293a6449826e7f4258e0b 100644 --- a/openbis/source/javascript/openbis.js +++ b/openbis/source/javascript/openbis.js @@ -18,18 +18,24 @@ var ajaxRequest = function(settings) { settings.data = jsonRequestData(settings.data) $.ajax(settings) } + +function openbis(url, dssUrl) { + this.generalInfoServiceUrl = url + "/rmi-general-information-v1.json" + this.queryServiceUrl = url + "/rmi-query-v1.json" + this.dssUrl = dssUrl + "/rmi-dss-api-v1.json" +} -var openbis = {} -openbis.login = function(username, password, action) { +openbis.prototype.login = function(username, password, action) { + openbisObj = this ajaxRequest({ - url: openbis.url, + url: this.generalInfoServiceUrl, data: { "method" : "tryToAuthenticateForAllServices", "params" : [ username, password ] }, success: function(data) { - openbis.sessionToken = data.result; + openbisObj.sessionToken = data.result; action(data) }, error: function() { @@ -38,42 +44,71 @@ openbis.login = function(username, password, action) { }); } -openbis.logout = function(action) { +openbis.prototype.logout = function(action) { ajaxRequest({ - url: openbis.url, + url: this.generalInfoServiceUrl, data: { "method" : "logout", - "params" : [ openbis.sessionToken ] + "params" : [ this.sessionToken ] }, success: action }); } -openbis.listProjects = function(action) { +openbis.prototype.listProjects = function(action) { ajaxRequest({ - url: openbis.url, + url: this.generalInfoServiceUrl, data: { "method" : "listProjects", - "params" : [ openbis.sessionToken ] + "params" : [ this.sessionToken ] }, success: action }); } -openbis.listExperiments = function(projects, experimentType, action) { +openbis.prototype.listExperiments = function(projects, experimentType, action) { ajaxRequest({ - url: openbis.url, + url: this.generalInfoServiceUrl, data: { "method" : "listExperiments", - "params" : [ openbis.sessionToken, projects, experimentType ] + "params" : [ this.sessionToken, projects, experimentType ] }, success: action }); } -openbis.searchForSamples = function(searchCriteria, action) { +openbis.prototype.searchForSamples = function(searchCriteria, action) { + ajaxRequest({ + url: this.generalInfoServiceUrl, + data: { "method" : "searchForSamples", + "params" : [ this.sessionToken, + searchCriteria ] }, + success: action + }); +} + +openbis.prototype.searchForSamples = function(searchCriteria, action) { ajaxRequest({ - url: openbis.url, + url: this.generalInfoServiceUrl, data: { "method" : "searchForSamples", - "params" : [ openbis.sessionToken, + "params" : [ this.sessionToken, searchCriteria ] }, success: action }); } + + +openbis.prototype.listQueries = function(action) { + ajaxRequest({ + url: this.queryServiceUrl, + data: { "method" : "listQueries", + "params" : [ this.sessionToken ] }, + success: action + }); +} + +openbis.prototype.executeQuery = function(queryId, parameterBindings, action) { + ajaxRequest({ + url: this.queryServiceUrl, + data: { "method" : "executeQuery", + "params" : [ this.sessionToken, queryId, parameterBindings ] }, + success: action + }); +}