diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts')
-rw-r--r-- | sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts | 106 |
1 files changed, 22 insertions, 84 deletions
diff --git a/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts b/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts index 12f7c8594..84e73ae5a 100644 --- a/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts +++ b/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts @@ -15,107 +15,45 @@ * the License. * ============LICENSE_END========================================================================== */ + import { Action } from '../../../../framework/src/flux/action'; import { Dispatch } from '../../../../framework/src/flux/store'; -import { MountedNetworkElementType } from '../models/mountedNetworkElements'; -import { RequiredNetworkElementType } from '../models/requiredNetworkElements'; - import { connectService } from '../services/connectService'; +import { NetworkElementConnection } from '../models/networkElementConnection'; import { AddSnackbarNotification } from '../../../../framework/src/actions/snackbarActions'; +import { updateCurrentViewAsyncAction } from './commonNetworkElementsActions'; /** Represents the base action. */ export class BaseAction extends Action { } -/** Represents an action causing the store to load all mounted network elements. */ -export class LoadAllMountedNetworkElementsAction extends BaseAction { } - -/** Represents an action causing the store to update all mounted network elements. */ -export class AllMountedNetworkElementsLoadedAction extends BaseAction { - constructor(public mountedNetworkElements: MountedNetworkElementType[] | null, public error?: string) { - super(); - } -} - -/** Represents an action causing the store to update all mounted network elements. */ -export class AddOrUpdateMountedNetworkElement extends BaseAction { - constructor(public mountedNetworkElement: MountedNetworkElementType | null, public error?: string) { - super(); - } -} - -export class RemoveMountedNetworkElement extends BaseAction { - constructor(public mountId: string) { - super(); - } -} - -export class UpdateConnectionStateMountedNetworkElement extends BaseAction { - constructor(public mountId: string, connectionState: string) { - super(); - } -} - - -export class UpdateRequiredMountedNetworkElement extends BaseAction { - constructor(public mountId: string, public required: boolean) { - super(); - } -} - -/** - * Represents an action crator for a async thunk action to add an allready mounted element to the state of this app. - * Note: Use this action to add created object notified by the websocket. -*/ -export const addMountedNetworkElementAsyncActionCreator = (mountId: string) => async (dispatch: Dispatch) => { - return connectService.getMountedNetworkElementByMountId(mountId).then(mountedNetworkElement => { - mountedNetworkElement && dispatch(new AddOrUpdateMountedNetworkElement(mountedNetworkElement)); - }).catch(error => { - dispatch(new AddOrUpdateMountedNetworkElement(null, error)); - }); -}; - -export const updateMountedNetworkElementAsyncActionCreator = (mountId: string) => async (dispatch: Dispatch) => { - return connectService.getMountedNetworkElementByMountId(mountId).then(mountedNetworkElement => { - if (mountedNetworkElement) { - dispatch(new AddOrUpdateMountedNetworkElement(mountedNetworkElement)); - } else { - dispatch(new RemoveMountedNetworkElement(mountId)); - } - }).catch(error => { - dispatch(new AddOrUpdateMountedNetworkElement(null, error)); - }); -}; - -/** Represents an async thunk action to load all mounted network elements. */ -export const loadAllMountedNetworkElementsAsync = (dispatch: Dispatch) => { - dispatch(new LoadAllMountedNetworkElementsAction()); - return connectService.getMountedNetworkElementsList().then(mountedNetworkElements => { - mountedNetworkElements && dispatch(new AllMountedNetworkElementsLoadedAction(mountedNetworkElements)); - }).catch(error => { - dispatch(new AllMountedNetworkElementsLoadedAction(null, error)); - }); -}; - /** Represents an action crator for a async thunk action to mount a network element. */ -export const mountNetworkElementAsyncActionCreator = (networkElement: RequiredNetworkElementType) => (dispatch: Dispatch) => { +export const mountNetworkElementAsyncActionCreator = (networkElement: NetworkElementConnection) => (dispatch: Dispatch) => { return connectService.mountNetworkElement(networkElement).then((success) => { - success && ( - dispatch(addMountedNetworkElementAsyncActionCreator(networkElement.mountId)) && - dispatch(new AddSnackbarNotification({ message: `Requesting mount [${networkElement.mountId}]`, options: { variant: 'info' } })) - ) || dispatch(new AddSnackbarNotification({ message: `Failed to mount [${ networkElement.mountId }]`, options: { variant: 'warning' } })); + if (success) { + dispatch(updateCurrentViewAsyncAction()); + dispatch(new AddSnackbarNotification({ message: `Requesting mount [${networkElement.nodeId}]`, options: { variant: 'info' } })) + } else { + dispatch(new AddSnackbarNotification({ message: `Failed to mount [${networkElement.nodeId}]`, options: { variant: 'warning' } })); + } }).catch(error => { - dispatch(new AddOrUpdateMountedNetworkElement(null, error)); + dispatch(new AddSnackbarNotification({ message: `Failed to mount [${networkElement.nodeId}]`, options: { variant: 'error' } })); + console.error(error); }); }; /** Represents an action crator for a async thunk action to unmount a network element. */ -export const unmountNetworkElementAsyncActionCreator = (mountId: string) => (dispatch: Dispatch) => { - return connectService.unmountNetworkElement(mountId).then((success) => { - success && dispatch(new AddSnackbarNotification({ message: `Requesting unmount [${ mountId }]`, options: { variant: 'info' } })) - || dispatch(new AddSnackbarNotification({ message: `Failed to unmount [${ mountId }]`, options: { variant: 'warning' } })); +export const unmountNetworkElementAsyncActionCreator = (nodeId: string) => (dispatch: Dispatch) => { + return connectService.unmountNetworkElement(nodeId).then((success) => { + if (success) { + dispatch(updateCurrentViewAsyncAction()); + dispatch(new AddSnackbarNotification({ message: `Requesting unmount [${nodeId}]`, options: { variant: 'info' } })); + } else { + dispatch(new AddSnackbarNotification({ message: `Failed to unmount [${nodeId}]`, options: { variant: 'warning' } })); + } }).catch(error => { - dispatch(new AddOrUpdateMountedNetworkElement(null, error)); + dispatch(new AddSnackbarNotification({ message: `Failed to unmount [${nodeId}]`, options: { variant: 'error' } })); + console.error(error); }); }; |