From eebaf75d4e0d89ab765f5d939bdd8ce6d1affa6c Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Thu, 28 Mar 2024 14:26:33 +0100 Subject: [PATCH] SSDM-13578 : 2PT : Database and V3 Implementation - js facade --- .../src/js/api/server-data-store-facade.js | 70 +++++++++++++++- api-openbis-javascript/src/v3/openbis.js | 84 ++----------------- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/api-data-store-server-javascript/src/js/api/server-data-store-facade.js b/api-data-store-server-javascript/src/js/api/server-data-store-facade.js index 71310f3af10..b2b5f5d6301 100644 --- a/api-data-store-server-javascript/src/js/api/server-data-store-facade.js +++ b/api-data-store-server-javascript/src/js/api/server-data-store-facade.js @@ -400,7 +400,21 @@ DataStoreServer.prototype.list = function(owner, source, recursively){ "application/octet-stream", this._internal.buildGetUrl(data), {} - ).then((response) => parseJsonResponse(response)); + ).then((response) => parseJsonResponse(response)).then((response) => { + if(response && Array.isArray(response.result) && response.result.length === 2){ + var files = [] + if(Array.isArray(response.result[1])){ + response.result[1].forEach(function(item){ + if(Array.isArray(item) && item.length === 2){ + files.push(new File(item[1])); + } + }); + } + return files; + } else { + return response + } + }); } /** @@ -604,6 +618,54 @@ DataStoreServer.prototype.recover = function(){ ); } +/** + * ================================================================================== + * DTO + * ================================================================================== + */ + +var File = function(fileObject){ + this.owner = fileObject.owner; + this.path = fileObject.path; + this.name = fileObject.name; + this.directory = fileObject.directory; + this.size = fileObject.size; + this.lastModifiedTime = fileObject.lastModifiedTime; + this.creationTime = fileObject.creationTime; + this.lastAccessTime = fileObject.lastAccessTime; + + this.getOwner = function(){ + return this.owner; + } + this.getPath = function(){ + return this.path; + } + this.getName = function(){ + return this.name; + } + this.getDirectory = function(){ + return this.directory; + } + this.getSize = function(){ + return this.size; + } + this.getLastModifiedTime = function(){ + return this.lastModifiedTime; + } + this.getCreationTime = function(){ + return this.creationTime; + } + this.getLastAccessTime = function(){ + return this.lastAccessTime; + } +} + +/** + * ================================================================================== + * MD5 + * ================================================================================== + */ + var md5 = (function(){ /** @@ -975,6 +1037,12 @@ var md5 = (function(){ return md5; })(); +/** + * ================================================================================== + * EXPORT + * ================================================================================== + */ + if (typeof define === 'function' && define.amd) { define(function () { return DataStoreServer diff --git a/api-openbis-javascript/src/v3/openbis.js b/api-openbis-javascript/src/v3/openbis.js index 50836798afe..408d1b875fb 100644 --- a/api-openbis-javascript/src/v3/openbis.js +++ b/api-openbis-javascript/src/v3/openbis.js @@ -441,100 +441,32 @@ define([ 'jquery', 'util/Json', 'as/dto/datastore/search/DataStoreSearchCriteria this.afsServer.useSession(asFacade._private.sessionToken) this.list = function(owner, source, recursively) { - return handleAfsResponse(this.afsServer.list(owner, source, recursively)).then(function(result){ - var files = [] - if(Array.isArray(result)){ - result.forEach(function(item){ - if(Array.isArray(item) && item.length === 2){ - files.push(new File(item[1])); - } - }); - } - return files; - }); + return this.afsServer.list(owner, source, recursively); } this.read = function(owner, source, offset, limit){ - return handleAfsResponse(this.afsServer.read(owner, source, offset, limit)); + return this.afsServer.read(owner, source, offset, limit); } this.write = function(owner, source, offset, data){ - return handleAfsResponse(this.afsServer.write(owner, source, offset, data)); + return this.afsServer.write(owner, source, offset, data); } this.delete = function(owner, source){ - return handleAfsResponse(this.afsServer.delete(owner, source)); + return this.afsServer.delete(owner, source); } this.copy = function(sourceOwner, source, targetOwner, target){ - return handleAfsResponse(this.afsServer.copy(sourceOwner, source, targetOwner, target)); + return this.afsServer.copy(sourceOwner, source, targetOwner, target); } this.move = function(sourceOwner, source, targetOwner, target){ - return handleAfsResponse(this.afsServer.move(sourceOwner, source, targetOwner, target)); + return this.afsServer.move(sourceOwner, source, targetOwner, target); } this.create = function(owner, source, directory){ - return handleAfsResponse(this.afsServer.create(owner, source, directory)); - } - - var File = function(fileObject){ - this.owner = fileObject.owner; - this.path = fileObject.path; - this.name = fileObject.name; - this.directory = fileObject.directory; - this.size = fileObject.size; - this.lastModifiedTime = fileObject.lastModifiedTime; - this.creationTime = fileObject.creationTime; - this.lastAccessTime = fileObject.lastAccessTime; - - this.getOwner = function(){ - return this.owner; - } - this.getPath = function(){ - return this.path; - } - this.getName = function(){ - return this.name; - } - this.getDirectory = function(){ - return this.directory; - } - this.getSize = function(){ - return this.size; - } - this.getLastModifiedTime = function(){ - return this.lastModifiedTime; - } - this.getCreationTime = function(){ - return this.creationTime; - } - this.getLastAccessTime = function(){ - return this.lastAccessTime; - } - } - - var handleAfsResponse = function(responsePromise){ - return new Promise(function(resolve, reject){ - return responsePromise.then(function(response){ - if(response.error){ - if(Array.isArray(response.error) && response.error.length === 2){ - reject(response.error[1]) - }else{ - reject(response.error) - } - }else{ - if(Array.isArray(response.result) && response.result.length === 2){ - resolve(response.result[1]) - }else{ - resolve(response.result) - } - } - }, function(error){ - reject(error) - }) - }); - } + return this.afsServer.create(owner, source, directory); + } } -- GitLab