Adding filter bar
[aai/sparky-fe.git] / src / app / MainScreenWrapperActionHelper.js
index 7918ec9..6278f29 100644 (file)
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 import {aaiActionTypes} from './MainScreenWrapperConstants.js';
+import {
+  POST,
+  POST_HEADER,
+  BASE_URL,
+  ERROR_RETRIEVING_DATA
+} from 'app/networking/NetworkConstants.js';
+import {
+  MESSAGE_LEVEL_DANGER
+} from 'utils/GlobalConstants.js';
+import {fetchRequestObj} from 'app/networking/NetworkCalls.js';
+
+import {
+  getSetGlobalMessageEvent,
+  getClearGlobalMessageEvent
+} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js';
 
 function createWindowSizeChangeEvent() {
   return {
@@ -48,3 +63,71 @@ export function showMainMenu(show) {
     dispatch(createShowMenuEvent(show));
   };
 }
+
+function createViewDataFoundEvent(viewData, paramName, curViewData) {
+  var obj = {};
+  obj['data'] = {};
+  obj['data']['paramName'] = paramName;
+  obj['data']['viewData'] = viewData;
+  obj['data']['curViewData'] = curViewData;
+  obj['type'] = aaiActionTypes.EXTENSIBLE_VIEW_NETWORK_CALLBACK_RESPONSE_RECEIVED;
+
+  return obj;
+}
+
+function extensibleViewData(dataFetchRequest, paramName, curViewData) {
+  return dispatch => {
+    return dataFetchRequest().then(
+      (response) => {
+        return response.json();
+      }
+    ).then(
+      (responseJson) => {
+        dispatch(createViewDataFoundEvent(responseJson, paramName, curViewData));
+      }).catch(
+      () => {
+        dispatch(getSetGlobalMessageEvent(ERROR_RETRIEVING_DATA, MESSAGE_LEVEL_DANGER));
+        dispatch(createViewDataFoundEvent({}, paramName, curViewData));
+        //To-do: If need to send a flag later on to the view, add a function to have the flag
+      });
+  };
+}
+
+export function extensibleViewNetworkCallback(urlApi, postBody, paramName, curViewData) {
+
+  let dataFetchRequest =
+    () => fetchRequestObj(BASE_URL + urlApi, POST,
+      POST_HEADER, postBody);
+
+
+  return dispatch => {
+    dispatch(extensibleViewData(dataFetchRequest, paramName, curViewData));
+  };
+}
+
+export function extensibleViewMessageCallback(msgText, msgSeverity) {
+  if (msgText.length > 0) {
+    return dispatch => {
+      dispatch(
+        getSetGlobalMessageEvent(msgText, msgSeverity));
+    };
+  } else {
+    return dispatch => {
+      dispatch(getClearGlobalMessageEvent());
+    };
+  }
+}
+
+export function clearExtensibleViewData() {
+  return {
+    type: aaiActionTypes.EXTENSIBLE_VIEW_NETWORK_CALLBACK_CLEAR_DATA,
+    data: {}
+  };
+}
+
+export function setSecondaryTitle(title) {
+  return {
+    type: aaiActionTypes.SET_SECONDARY_TITLE,
+    data: title
+  };
+}