Add network call as promise for ext views
[aai/sparky-fe.git] / src / app / MainScreenWrapper.jsx
index 1b1088b..4bffc88 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.
@@ -17,8 +17,6 @@
  * 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.
  */
 import React, {Component} from 'react';
 import {connect} from 'react-redux';
@@ -27,8 +25,8 @@ import TierSupport from './tierSupport/TierSupport.jsx';
 import VnfSearch from './vnfSearch/VnfSearch.jsx';
 import MainScreenHeader from './MainScreenHeader.jsx';
 import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
-
-
+import {isEmpty} from 'lodash';
+import {genericRequest} from 'app/networking/NetworkCalls.js';
 import {
   Route,
   HashRouter as Router,
@@ -39,6 +37,7 @@ import {
 import {
   windowResize,
   extensibleViewNetworkCallback,
+  overlayNetworkCallback,
   extensibleViewMessageCallback
 } from './MainScreenWrapperActionHelper.js';
 
@@ -66,6 +65,9 @@ const mapActionsToProps = (dispatch) => {
     },
     onExtensibleViewMessageCallback: (message, messageSevirity) => {
       dispatch(extensibleViewMessageCallback(message, messageSevirity));
+    },
+    onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) =>  {
+      dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey));
     }
   };
 };
@@ -86,14 +88,27 @@ class MainScreenWrapper extends Component {
     const {
       onExtensibleViewNetworkCallback,
       extensibleViewNetworkCallbackData,
-      onExtensibleViewMessageCallback
+      onExtensibleViewMessageCallback,
+      onOverlayNetworkCallback
     } = this.props;
 
     let customViewList = [];
     extensibleViews.forEach(function(view,key) {
+
+      let path = ''
+          , extKey = ''
+          ;
+      if(isEmpty(extensibleViews[key]['viewParams'])){
+        path = '/' + view.viewName + '/:extensibleViewParams?';
+        extKey = view.viewName + 'Route';
+      } else {
+        path = '/' + view.viewName  + view.viewParams;
+        extKey = view.viewName + view.viewParams + 'Route'
+      }
+
       var renderComponent = (props) => {
         let viewParams = {};
-        if(props.match.params.extensibleViewParams !== undefined) {
+        if(isEmpty(extensibleViews[key]['viewParams']) && props.match.params.extensibleViewParams !== undefined) {
           viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
         }
 
@@ -105,23 +120,34 @@ class MainScreenWrapper extends Component {
               networkingCallback={(apiUrl, body, paramName, curViewData) => {
                 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
               }}
+              overlayCallback={(apiUrl, body, paramName, curOverlayData,responseEventKey) => {
+                onOverlayNetworkCallback(apiUrl, body, paramName, curOverlayData, responseEventKey);
+              }}
               messagingCallback ={(message, messageSeverity) => {
                 onExtensibleViewMessageCallback(message, messageSeverity);
               }}
               changeRouteCallback = {(routeParam, historyObj) => {
                 changeUrlAddress(routeParam, historyObj);
               }}
+              networkingCallbackPromise = {(url, relativeURL, httpMethodType) => {
+                return genericRequest(url, relativeURL, httpMethodType);
+              }}
               viewName={view.displayName}
               viewData={extensibleViewNetworkCallbackData}
               viewParams={viewParams}/>
           );
         }
       };
-
-      customViewList.push(
-          <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
-             render={renderComponent}/>
+      if(isEmpty(extensibleViews[key]['isExact']) && !extensibleViews[key]['isExact']){
+        customViewList.push(
+          <Route key={extKey} path={path} render={renderComponent}/>
+      );
+      } else {
+        customViewList.push(
+          <Route key={extKey} exact path={path} render={renderComponent}/>
       );
+      }
+      
     });
 
     return (