Add network call as promise for ext views
[aai/sparky-fe.git] / src / app / networking / NetworkCalls.js
index b6c96b7..63c08ed 100644 (file)
@@ -2,8 +2,8 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 
-function EmptyResponseException(){
-  this.name = 'EmptyResponseException';
-}
+import {BASE_URL} from 'app/networking/NetworkConstants.js';
+
 function fetchRequest(URL, POST, POST_HEADER, BODY) {
   return fetch(URL, {
     credentials: 'same-origin',
@@ -44,31 +41,38 @@ function fetchRequestObj(URL, POST, POST_HEADER, BODY) {
   });
 }
 
-function processResponse(response){
-  if(response.status === 204){
-    throw new EmptyResponseException();
-  }
-  return response.json();
-}
 function getRequest(URL, GET) {
   return fetch(URL, {
     credentials: 'same-origin',
     method: GET
   }).then(
-    (response) => {
-      try{
-        response.json();
-      } catch (e){
-        response.isValidJson = false;
-      }
-      return processResponse(response);
-    }
+    (response) => response.json()
   );
 }
+
+const genericRequest = (url, relativeURL, httpMethodType) => {
+  let URL;
+  if(relativeURL){
+    URL = BASE_URL.concat(url);
+  } else {
+    URL = url;
+  }
+  switch(httpMethodType){
+    case 'GET':
+      return fetch(URL, {
+        credentials: 'same-origin',
+        method: 'GET'
+      }).then(
+        (response) => response.json()
+      );
+  }
+};
+
 module.exports = {
   fetchRequest: fetchRequest,
   fetchRequestObj: fetchRequestObj,
-  getRequest: getRequest
+  getRequest: getRequest,
+  genericRequest: genericRequest
 };