4c8337f1a3399f42f500f20744635cb94400299c
[aai/sparky-fe.git] / src / app / vnfSearch / VnfSearchReducer.js
1 /*
2  * ============LICENSE_START===================================================
3  * SPARKY (AAI UI service)
4  * ============================================================================
5  * Copyright © 2017 AT&T Intellectual Property.
6  * Copyright © 2017 Amdocs
7  * All rights reserved.
8  * ============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=====================================================
21  *
22  * ECOMP and OpenECOMP are trademarks
23  * and service marks of AT&T Intellectual Property.
24  */
25 import {vnfActionTypes} from 'app/vnfSearch/VnfSearchConstants.js';
26 import {
27   CHART_ORCH_STATUS,
28   CHART_PROV_STATUS,
29   CHART_NF_ROLE,
30   CHART_NF_TYPE,
31   TOTAL_VNF_COUNT
32 } from 'app/vnfSearch/VnfSearchConstants.js';
33 import {ERROR_RETRIEVING_DATA} from 'app/networking/NetworkConstants.js';
34 import {MESSAGE_LEVEL_DANGER} from 'utils/GlobalConstants.js';
35 import {
36   globalAutoCompleteSearchBarActionTypes
37 } from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarConstants.js';
38 import {
39   filterBarActionTypes
40 } from 'generic-components/filterBar/FilterBarConstants.js';
41
42 export default (state = {}, action) => {
43   let data = action.data;
44   switch (action.type) {
45     case vnfActionTypes.VNF_NETWORK_ERROR:
46       return {
47         ...state,
48         processedProvStatusCountChartData: CHART_PROV_STATUS.emptyData,
49         processedOrchStatusCountChartData: CHART_ORCH_STATUS.emptyData,
50         processedNfTypeCountChartData: CHART_NF_TYPE.emptyData,
51         processedNfRoleCountChartData: CHART_NF_ROLE.emptyData,
52         count: TOTAL_VNF_COUNT.emptyValue,
53         feedbackMsgText: ERROR_RETRIEVING_DATA,
54         feedbackMsgSeverity: MESSAGE_LEVEL_DANGER
55       };
56     case globalAutoCompleteSearchBarActionTypes.SEARCH_WARNING_EVENT:
57       return {
58         ...state,
59         processedProvStatusCountChartData: CHART_PROV_STATUS.emptyData,
60         processedOrchStatusCountChartData: CHART_ORCH_STATUS.emptyData,
61         processedNfTypeCountChartData: CHART_NF_TYPE.emptyData,
62         processedNfRoleCountChartData: CHART_NF_ROLE.emptyData,
63         count: TOTAL_VNF_COUNT.emptyValue
64       };
65     case filterBarActionTypes.NEW_SELECTIONS:
66       return {
67         ...state,
68         vnfFilterValues: data.selectedValuesMap,
69         unifiedFilterValues: data.unifiedValues
70       };
71     case filterBarActionTypes.SET_UNIFIED_VALUES:
72       return {
73         ...state,
74         unifiedFilterValues: data
75       };
76     case vnfActionTypes.VNF_SEARCH_RESULTS_RECEIVED:
77       return {
78         ...state,
79         count: data.count,
80         processedProvStatusCountChartData: data.provStatusData,
81         processedOrchStatusCountChartData: data.orchStatusData,
82         processedNfTypeCountChartData: data.nfTypeData,
83         processedNfRoleCountChartData: data.nfRoleData,
84         feedbackMsgText: '',
85         feedbackMsgSeverity: ''
86       };
87     case vnfActionTypes.VNF_FILTER_PANEL_TOGGLED:
88       return {
89         ...state,
90         vnfVisualizationPanelClass: data.vnfVisualizationPanelClass
91       };
92     case vnfActionTypes.VNF_SEARCH_FILTERS_RECEIVED:
93       return {
94         ...state,
95         vnfFilters: data
96       };
97     case filterBarActionTypes.SET_NON_CONVERTED_VALUES:
98       return {
99         ...state,
100         nonConvertedFilters: data
101       };
102     case filterBarActionTypes.SET_CONVERTED_VALUES:
103       return {
104         ...state,
105         nonConvertedFilters: {},
106         unifiedFilterValues: data.convertedValues,
107         vnfFilterValues: data.nonConvertedValues  // launching DI view via menu button requires this
108                                                   // to be set so visualizations and table will populate themselves
109       };
110     case filterBarActionTypes.CLEAR_FILTERS:
111       return {
112         ...state,
113         vnfFilters: {},
114         vnfFilterValues: {},
115         nonConvertedFilters: {},
116         unifiedFilterValues: {}
117       };
118   }
119
120   return state;
121 };