merge from ecomp a88f0072 - Modern UI
[vid.git] / vid-webpack-master / src / app / shared / storeUtil / utils / main.reducer.ts
1 import {LcpRegionsAndTenants} from "../../models/lcpRegionsAndTenants";
2 import {CategoryParams} from "../../models/categoryParams";
3 import {Action} from "redux";
4 import {ServiceActions} from "./service/service.actions";
5 import {GeneralActions} from "./general/general.actions";
6 import {NetworkActions} from "./network/network.actions";
7 import {VfModuleActions} from "./vfModule/vfModule.actions";
8 import {VNFActions} from "./vnf/vnf.actions";
9 import {vnfReducer} from "./vnf/vnf.reducers";
10 import {generalReducer} from "./general/general.reducers";
11 import {serviceReducer} from "./service/service.reducers";
12 import {networkReducer} from "./network/network.reducers";
13 import {vfModuleReducer} from "./vfModule/vfModule.reducers";
14 import {ServiceInstance} from "../../models/serviceInstance";
15 import {SelectOptionInterface} from "../../models/selectOption";
16 import {ServiceType} from "../../models/serviceType";
17 import {VnfGroupActions} from "./vnfGroup/vnfGroup.actions";
18 import {vnfGroupReducer} from "./vnfGroup/vnfGroup.reducers";
19 import {RelatedVnfActions} from "./relatedVnfMember/relatedVnfMember.actions";
20 import {relatedVnfMemeberReducer} from "./relatedVnfMember/relatedVnfMember.reducers";
21
22 export let initialState: ServiceState = {
23   serviceHierarchy: {},
24   serviceInstance: {},
25   lcpRegionsAndTenants: new LcpRegionsAndTenants(),
26   subscribers: null,
27   productFamilies: null,
28   serviceTypes: {},
29   aicZones: null,
30   categoryParameters: new CategoryParams()
31 };
32
33
34 export interface ServiceState {
35   serviceHierarchy: any;
36   serviceInstance: { [uuid: string]: ServiceInstance; };
37   lcpRegionsAndTenants: LcpRegionsAndTenants;
38   subscribers: SelectOptionInterface[];
39   productFamilies: any;
40   serviceTypes: { [subscriberId: string]: ServiceType[]; };
41   aicZones: SelectOptionInterface[];
42   categoryParameters: CategoryParams;
43 }
44
45 export const MainReducer = function (state: ServiceState = initialState, action: Action): ServiceState {
46   console.info("action name", action.type);
47   if(Object.values(ServiceActions).includes(action.type)){
48     return serviceReducer(state, action);
49   }else if (Object.values(GeneralActions).includes(action.type)){
50     return generalReducer(state, action);
51   }else if (Object.values(NetworkActions).includes(action.type)){
52     return networkReducer(state, action);
53   }else if (Object.values(VfModuleActions).includes(action.type)){
54     return vfModuleReducer(state, action);
55   }else if (Object.values(VNFActions).includes(action.type)){
56     return vnfReducer(state, action);
57   }else if (Object.values(VnfGroupActions).includes(action.type)){
58     return vnfGroupReducer(state, action);
59   }else if(Object.values(RelatedVnfActions).includes(action.type)){
60     return relatedVnfMemeberReducer(state, action);
61   } else {
62     return Object.assign({}, state);
63   }
64 };
65
66
67