From 7d3a92714c4ac7d11041ef9d5c619926bf16ecaf Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Fri, 23 Jan 2015 14:29:09 +0000
Subject: [PATCH] SSDM-1439 SSDM-1383 Add decoding dto from json to search
 sample.

SVN: 33311
---
 .../html/openbis-v3-api.js                    | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/openbis-v3-api.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/openbis-v3-api.js
index 73ce951a29c..b574067487c 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/openbis-v3-api.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/openbis-v3-api.js
@@ -46,7 +46,6 @@ define(['jquery', 'support/Utils'], function($, stjsUtil) {
 				console.log(msg);
 			}
 		}
-
 	}
 
 	return function(openbisUrl) {
@@ -60,7 +59,7 @@ define(['jquery', 'support/Utils'], function($, stjsUtil) {
 					"params" : [ user, password ]
 				}
 			}).done(function(sessionToken) {
-				if (sessionToken.indexOf(user) > -1) {
+				if (sessionToken && sessionToken.indexOf(user) > -1) {
 				_private.sessionToken = sessionToken;
 				dfd.resolve(sessionToken);
 			} else {
@@ -141,13 +140,28 @@ define(['jquery', 'support/Utils'], function($, stjsUtil) {
 		}
 
 		this.searchSamples = function(sampleSearchCriterion, sampleFetchOptions) {
-			return _private.ajaxRequest({
+			var dfd = $.Deferred();
+
+			_private.ajaxRequest({
 				url : openbisUrl,
 				data : {
 					"method" : "searchSamples",
 					"params" : [ _private.sessionToken, sampleSearchCriterion, sampleFetchOptions ]
 				}
+			}).done(function(samples) {
+				require(['dto/entity/sample/Sample'], function() {
+					var sampleDTOs = {};
+					for(var sampleId in samples) {
+						var sampleJson = samples[sampleId];
+						var newSample = stjsUtil.fromJson(sampleJson);
+						sampleDTOs[newSample.getPermId().getPermId()] = newSample;
+					}
+					dfd.resolve(sampleDTOs);
+				});
+			}).fail(function() {
+				dfd.reject(arguments);
 			});
+			return dfd.promise();
 		}
 
 		this.searchDataSets = function(dataSetSearchCriterion, dataSetFetchOptions) {
-- 
GitLab