From 30e2cf90808148345524fb27eb8ac6120e056306 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 31 May 2017 17:59:00 +0200
Subject: [PATCH] promise chains fixed to forward rejects properly

---
 frontend-js/src/main/js/ServerConnector.js | 89 +++++++++++-----------
 1 file changed, 43 insertions(+), 46 deletions(-)

diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 6c676aabc6..b00e8a1d17 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -215,7 +215,10 @@ ServerConnector.getApiUrl = function(paramObj) {
   var method = paramObj.method;
   var params = this.createGetParams(paramObj.params);
 
-  var result = this.getApiBaseUrl() + "/" + type + "/" + method;
+  var result = this.getApiBaseUrl() + "/" + type;
+  if (method !== undefined) {
+    result += "/" + method;
+  }
   if (params !== "") {
     result += "?" + params;
   }
@@ -1291,61 +1294,55 @@ ServerConnector.addComment = function(params) {
 
 ServerConnector.addOverlay = function(params) {
   var self = this;
-  return new Promise(function(resolve, reject) {
-    return self.getProjectId(params.projectId).then(function(result) {
-      params.projectId = result;
-      return self.getToken();
-    }).then(function(token) {
-      params.token = token;
-      return self.sendPostRequest(self.addOverlayUrl(), params);
-    }).then(function(content) {
-      var response = JSON.parse(content);
-      if (response.status === "OK") {
-        resolve(response.overlayId);
-      } else {
-        reject(response);
-      }
-    });
+  return self.getProjectId(params.projectId).then(function(result) {
+    params.projectId = result;
+    return self.getToken();
+  }).then(function(token) {
+    params.token = token;
+    return self.sendPostRequest(self.addOverlayUrl(), params);
+  }).then(function(content) {
+    var response = JSON.parse(content);
+    if (response.status === "OK") {
+      return response.overlayId;
+    } else {
+      return Promise.reject(response);
+    }
   });
 };
 
 ServerConnector.updateOverlay = function(params) {
   var self = this;
-  return new Promise(function(resolve, reject) {
-    return self.getProjectId(params.projectId).then(function(result) {
-      params.projectId = result;
-      return self.getToken();
-    }).then(function(token) {
-      params.token = token;
-      return self.sendPostRequest(self.updateOverlayUrl(), params);
-    }).then(function(content) {
-      var response = JSON.parse(content);
-      if (response.status === "OK") {
-        resolve();
-      } else {
-        reject(response.reason);
-      }
-    });
+  return self.getProjectId(params.projectId).then(function(result) {
+    params.projectId = result;
+    return self.getToken();
+  }).then(function(token) {
+    params.token = token;
+    return self.sendPostRequest(self.updateOverlayUrl(), params);
+  }).then(function(content) {
+    var response = JSON.parse(content);
+    if (response.status === "OK") {
+      return Promise.resolve();
+    } else {
+      return Promise.reject(response.reason);
+    }
   });
 };
 
 ServerConnector.removeOverlay = function(params) {
   var self = this;
-  return new Promise(function(resolve, reject) {
-    return self.getProjectId(params.projectId).then(function(result) {
-      params.projectId = result;
-      return self.getToken();
-    }).then(function(token) {
-      params.token = token;
-      return self.sendPostRequest(self.deleteOverlayUrl(), params);
-    }).then(function(content) {
-      var response = JSON.parse(content);
-      if (response.status === "OK") {
-        resolve();
-      } else {
-        reject(response);
-      }
-    });
+  return self.getProjectId(params.projectId).then(function(result) {
+    params.projectId = result;
+    return self.getToken();
+  }).then(function(token) {
+    params.token = token;
+    return self.sendPostRequest(self.deleteOverlayUrl(), params);
+  }).then(function(content) {
+    var response = JSON.parse(content);
+    if (response.status === "OK") {
+      return Promise.resolve();
+    } else {
+      return Promise.reject(response);
+    }
   });
 };
 
-- 
GitLab