Introduction of external URLs
[aai/sparky-fe.git] / src / app / tierSupport / selectedNodeDetails / SelectedNodeDetailsReducer.js
1 /*
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  *
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  */
23 import {tierSupportActionTypes} from 'app/tierSupport/TierSupportConstants.js';
24 import {
25   globalAutoCompleteSearchBarActionTypes
26 } from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarConstants.js';
27
28 export default (state = {}, action) => {
29   switch (action.type) {
30     case tierSupportActionTypes.TS_NODE_SEARCH_RESULTS:
31       for (const node of action.data.nodes) {
32         if (node.nodeMeta.searchTarget === true) {
33           return {
34             ...state,
35             nodeData: node.itemProperties,
36             nodeType: node.itemType,
37             uid: node.itemNameValue
38           };
39         }
40       }
41       return {
42         ...state,
43         nodeData: {},
44         nodeType: '',
45         uid: ''
46       };
47
48     case tierSupportActionTypes.TS_GRAPH_NODE_SELECTED:
49       return {
50         ...state,
51         nodeData: action.data.itemProperties,
52         nodeType: action.data.itemType,
53         uid: action.data.itemNameValue
54       };
55
56     // else fall through to the TIER_SUPPORT_CLEAR_DATA case
57     case globalAutoCompleteSearchBarActionTypes.SEARCH_WARNING_EVENT:
58     case tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR:
59     case tierSupportActionTypes.TIER_SUPPORT_CLEAR_DATA:
60     case tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS:
61       return {
62         ...state,
63         nodeData: {},
64         nodeType: '',
65         uid: ''
66       };
67   }
68   return state;
69 };