SDN-R add updated featureaggregator
[ccsdk/features.git] / sdnr / wt / odlux / apps / connectApp / src / handlers / networkElementsHandler.ts
1 /**
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt odlux
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18 import { createExternal, IExternalTableState } from '../../../../framework/src/components/material-table/utilities';
19 import { createSearchDataHandler } from '../../../../framework/src/utilities/elasticSearch';
20
21 import { NetworkElementConnection } from '../models/networkElementConnection';
22 import connectService from '../services/connectService';
23 import { requestRest } from '../../../../framework/src/services/restService';
24 export interface INetworkElementsState extends IExternalTableState<NetworkElementConnection> { }
25
26 // create eleactic search material data fetch handler
27 const networkElementsSearchHandler = createSearchDataHandler<NetworkElementConnection>('network-element-connection');
28
29 export const {
30   actionHandler: networkElementsActionHandler,
31   createActions: createNetworkElementsActions,
32   createProperties: createNetworkElementsProperties,
33   reloadAction: networkElementsReloadAction,
34
35   // set value action, to change a value
36 } = createExternal<NetworkElementConnection>(networkElementsSearchHandler, appState => {
37
38   const webUris = appState.connect.guiCutThrough.availableWebUris;
39   if (appState.connect.networkElements.rows && webUris.length > 0) {
40
41     appState.connect.networkElements.rows.forEach(element => {
42
43       if (element.status === "Connected") {
44         const webUri = webUris.find(item => item.nodeId === element.id as string);
45         if (webUri) {
46           element.webUri = webUri.webUri;
47           element.isWebUriUnreachable = false;
48         }
49         else {
50           element.isWebUriUnreachable = true
51         }
52       }
53     });
54   }
55
56   return appState.connect.networkElements
57 });
58