From 0e44395307b9fb8f242cc87523af17047d4ce374 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Thu, 26 May 2016 10:08:01 +0000
Subject: [PATCH] SSDM-3686 : V3 AS API - archiveDataSets/unarchiveDataSets
 methods - js facade + js tests

SVN: 36585
---
 .../openbis-v3-api-test/html/test/common.js   |  2 +
 .../openbis-v3-api-test/html/test/dtos.js     |  2 +
 .../openbis-v3-api-test/html/test/main.js     |  3 +-
 .../html/test/test-archive-unarchive.js       | 49 +++++++++++++++++++
 .../public/resources/api/v3/openbis.js        | 23 +++++++++
 5 files changed, 78 insertions(+), 1 deletion(-)
 create mode 100644 js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js

diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
index 9d7e9ef86af..c97f09681eb 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
@@ -90,6 +90,8 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, openbis,
 		this.GlobalSearchObjectFetchOptions = dtos.GlobalSearchObjectFetchOptions;
 		this.ObjectKindModificationSearchCriteria = dtos.ObjectKindModificationSearchCriteria;
 		this.ObjectKindModificationFetchOptions = dtos.ObjectKindModificationFetchOptions;
+		this.DataSetArchiveOptions = dtos.DataSetArchiveOptions;
+		this.DataSetUnarchiveOptions = dtos.DataSetUnarchiveOptions;
 
 		this.getDtos = function() {
 			return dtos;
diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
index 822b05dabfe..42041b342f4 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
@@ -138,6 +138,8 @@ var sources = [
 	'as/dto/common/update/ListUpdateValue',
 	'as/dto/dataset/DataSet',
 	'as/dto/dataset/DataSetType',
+	'as/dto/dataset/archive/DataSetArchiveOptions',
+	'as/dto/dataset/unarchive/DataSetUnarchiveOptions',
 	'as/dto/dataset/delete/DataSetDeletionOptions',
 	'as/dto/dataset/fetchoptions/DataSetFetchOptions',
 	'as/dto/dataset/fetchoptions/DataSetSortOptions',
diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js
index c3494b93f1e..b88b3c1503f 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js
@@ -8,7 +8,8 @@ define([
 
 //         'test/test-dto', 
          'test/test-dto-roundtrip', 
-         'test/test-custom-services' 
+         'test/test-custom-services',
+         'test/test-archive-unarchive'
          ], function() {
 	var testSuites = arguments;
 	return function() {
diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js
new file mode 100644
index 00000000000..6dbe8e010e7
--- /dev/null
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js
@@ -0,0 +1,49 @@
+define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) {
+	return function() {
+		QUnit.module("Archive/Unarchive")
+
+		var testAction = function(c, fAction) {
+			c.start();
+
+			c.createFacadeAndLogin().then(function(facade) {
+				c.ok("Login");
+				return fAction(facade).then(function(result) {
+					c.ok("Archived/Unarchived");
+					c.finish();
+				});
+			}).fail(function(error) {
+				c.fail(error.message);
+				c.finish();
+			});
+		}
+
+		QUnit.test("archiveDataSets()", function(assert) {
+			var c = new common(assert);
+
+			var fAction = function(facade) {
+				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
+					var ids = [ permId1, permId2 ];
+					return facade.archiveDataSets(ids, new c.DataSetArchiveOptions());
+				});
+			}
+
+			testAction(c, fAction);
+		});
+
+		QUnit.test("unarchiveDataSets()", function(assert) {
+			var c = new common(assert);
+
+			var fAction = function(facade) {
+				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
+					var ids = [ permId1, permId2 ];
+					return facade.archiveDataSets(ids, new c.DataSetArchiveOptions()).then(function() {
+						return facade.unarchiveDataSets(ids, new c.DataSetUnarchiveOptions());
+					});
+				});
+			}
+
+			testAction(c, fAction);
+		});
+
+	}
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js
index 535dc9f791f..60a4b1766e0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js
@@ -776,6 +776,29 @@ define([ 'jquery', 'util/Json' ], function(jquery, stjsUtil) {
 				}
 			});
 		}
+
+		this.archiveDataSets = function(ids, options) {
+			var thisFacade = this;
+			return thisFacade._private.ajaxRequest({
+				url : openbisUrl,
+				data : {
+					"method" : "archiveDataSets",
+					"params" : [ thisFacade._private.sessionToken, ids, options ]
+				}
+			});
+		}
+
+		this.unarchiveDataSets = function(ids, options) {
+			var thisFacade = this;
+			return thisFacade._private.ajaxRequest({
+				url : openbisUrl,
+				data : {
+					"method" : "unarchiveDataSets",
+					"params" : [ thisFacade._private.sessionToken, ids, options ]
+				}
+			});
+		}
+
 	}
 
 	return facade;
-- 
GitLab