a8254b45db5cea2520eaace2c93081099b0cf474
[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 {useTemplateReducer} from "./useTemplate/useTemplate.reducer";
13 import {networkReducer} from "./network/network.reducers";
14 import {vfModuleReducer} from "./vfModule/vfModule.reducers";
15 import {ServiceInstance} from "../../models/serviceInstance";
16 import {UseTemplateActions} from "./useTemplate/useTemplate.action";
17 import {SelectOptionInterface} from "../../models/selectOption";
18 import {ServiceType} from "../../models/serviceType";
19 import {VnfGroupActions} from "./vnfGroup/vnfGroup.actions";
20 import {vnfGroupReducer} from "./vnfGroup/vnfGroup.reducers";
21 import {RelatedVnfActions} from "./relatedVnfMember/relatedVnfMember.actions";
22 import {relatedVnfMemeberReducer} from "./relatedVnfMember/relatedVnfMember.reducers";
23 import {VrfActions} from "./vrf/vrf.actions";
24 import {vrfReducer} from "./vrf/vrf.reducer";
25 import {CrActions} from "./cr/cr.actions";
26 import {crReducer} from "./cr/cr.reducer";
27 import {NcfActions} from "./ncf/ncf.actions";
28 import {ncfReducer} from "./ncf/ncf.reducer";
29 import {PNFActions} from "./pnf/pnf.actions";
30 import {pnfReducer} from "./pnf/pnf.reducers";
31
32 export let initialState: ServiceState = {
33   serviceHierarchy: {},
34   serviceInfoModel: {},
35   serviceInstance: {},
36   lcpRegionsAndTenants: new LcpRegionsAndTenants(),
37   subscribers: null,
38   productFamilies: null,
39   serviceTypes: {},
40   aicZones: null,
41   categoryParameters: new CategoryParams(),
42   genericModalCriteria : {}
43 };
44
45
46 export interface ServiceState {
47   serviceHierarchy: any;
48   serviceInfoModel: any;
49   serviceInstance: { [uuid: string]: ServiceInstance; };
50   lcpRegionsAndTenants: LcpRegionsAndTenants;
51   subscribers: SelectOptionInterface[];
52   productFamilies: any;
53   serviceTypes: { [subscriberId: string]: ServiceType[]; };
54   aicZones: SelectOptionInterface[];
55   categoryParameters: CategoryParams;
56   genericModalCriteria : { [field: string]: any; }
57 }
58
59 export const MainReducer = function (state: ServiceState = initialState, action: Action): ServiceState {
60   console.info("action name", action.type);
61   if(Object.values(ServiceActions).includes(action.type)){
62     return serviceReducer(state, action);
63   }else if (Object.values(GeneralActions).includes(action.type)){
64     return generalReducer(state, action);
65   }else if (Object.values(NetworkActions).includes(action.type)){
66     return networkReducer(state, action);
67   }else if (Object.values(VfModuleActions).includes(action.type)){
68     return vfModuleReducer(state, action);
69   }else if (Object.values(VNFActions).includes(action.type)){
70     return vnfReducer(state, action);
71   }else if (Object.values(PNFActions).includes(action.type)){
72     return pnfReducer(state, action);
73   }else if (Object.values(VnfGroupActions).includes(action.type)){
74     return vnfGroupReducer(state, action);
75   }else if(Object.values(RelatedVnfActions).includes(action.type)){
76     return relatedVnfMemeberReducer(state, action);
77   }else if(Object.values(VrfActions).includes(action.type)) {
78     return vrfReducer(state, action);
79   }else if(Object.values(CrActions).includes(action.type)){
80       return crReducer(state, action);
81   }else if(Object.values(NcfActions).includes(action.type)){
82       return ncfReducer(state, action);
83   } else if(Object.values(UseTemplateActions).includes(action.type)) {
84     return useTemplateReducer(state, action);
85   } else {
86     return Object.assign({}, state);
87   }
88 };
89
90
91