From f792671ae247a931f34d902e9276202b5016ef9a Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Sun, 7 Jul 2019 19:23:03 +0300 Subject: Merge from ecomp 718fd196 - Modern UI Issue-ID: VID-378 Change-Id: I2736b98426e324ec3aa233b034229ba84d99839f Signed-off-by: Ittay Stern --- .../app/shared/storeUtil/utils/vrf/vrf.reducer.ts | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts (limited to 'vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts') diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts new file mode 100644 index 000000000..f3d81209e --- /dev/null +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts @@ -0,0 +1,90 @@ +import {ServiceState} from "../main.reducer"; +import {Action} from "redux"; +import * as _ from "lodash"; +import { + AssociateVRFMemberInstanceAction, + ClearAssociateVRFMemberInstanceAction, + CreateVRFInstanceAction, DeleteActionVrfInstanceAction, UndoDeleteActionVrfInstanceAction, + VrfActions +} from "./vrf.actions"; +import {calculateNextUniqueModelName} from "../vnf/vnf.reducers"; +import {ServiceInstanceActions} from "../../../models/serviceInstanceActions"; + +export function vrfReducer(state: ServiceState, action: Action): ServiceState { + switch (action.type) { + case VrfActions.CREATE_VRF_INSTANCE: { + const createVRFInstanceAction = action; + const serviceUuid = createVRFInstanceAction.serviceModelId; + + let newState = _.cloneDeep(state); + + const vrfModelName = calculateNextUniqueModelName(createVRFInstanceAction.vrfModel['name'], serviceUuid, newState, 'vrfs'); + newState.serviceInstance[serviceUuid].vrfs[vrfModelName] = { + ...createVRFInstanceAction.vrfModel + }; + return newState; + } + case VrfActions.VRF_ASSOCIATE_MEMBER: { + const associateVRFMemberInstanceAction = action; + const serviceUuid = associateVRFMemberInstanceAction.serviceModelId; + const member = associateVRFMemberInstanceAction.member; + const vrfStoreKey = associateVRFMemberInstanceAction.vrfStoreKey; + const memberType = associateVRFMemberInstanceAction.memberType; + + let newState = _.cloneDeep(state); + + if(_.isNil(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType])){ + newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {}; + } + + const numberOfKeys = Object.keys(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType]).length; + newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} ${numberOfKeys+1}`] = member; + + return newState; + } + case VrfActions.VRF_ASSOCIATE_MEMBER: { + const associateVRFMemberInstanceAction = action; + const serviceUuid = associateVRFMemberInstanceAction.serviceModelId; + const member = associateVRFMemberInstanceAction.member; + const vrfStoreKey = associateVRFMemberInstanceAction.vrfStoreKey; + const memberType = associateVRFMemberInstanceAction.memberType; + + let newState = _.cloneDeep(state); + + if(_.isNil(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType])){ + newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {}; + } + + const numberOfKeys = Object.keys(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType]).length; + newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} ${numberOfKeys+1}`] = member; + + return newState; + } + case VrfActions.CLAER_ASSOCIATE__VRF_MEMBERS: { + const clearAssociateVRFMemberInstanceAction = action; + const serviceUuid = clearAssociateVRFMemberInstanceAction.serviceModelId; + const vrfStoreKey = clearAssociateVRFMemberInstanceAction.vrfStoreKey; + const memberType = clearAssociateVRFMemberInstanceAction.memberType; + + let newState = _.cloneDeep(state); + newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {}; + return newState; + } + case VrfActions.DELETE_ACTION_VRF_INSTANCE : { + let newState = _.cloneDeep(state); + let vrf = newState.serviceInstance[(action).serviceId].vrfs[(action).vrfStoreKey]; + let oldAction = vrf.action; + if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState; + newState.serviceInstance[(action).serviceId].vrfs[(action).vrfStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions; + return newState; + } + + case VrfActions.UNDO_DELETE_ACTION_VRF_INSTANCE : { + let newState = _.cloneDeep(state); + let vnf = newState.serviceInstance[(action).serviceId].vrfs[(action).vrfStoreKey]; + let oldState = vnf.action; + newState.serviceInstance[(action).serviceId].vrfs[(action).vrfStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions; + return newState; + } + } +} -- cgit 1.2.3-korg