Skip to content
Snippets Groups Projects
Commit 3c982ef9 authored by Matthias Feyll's avatar Matthias Feyll :cookie:
Browse files

remove explicit json parse

parent bd3cb8c2
Branches
No related tags found
1 merge request!1206UI-Integration: add first version to master
This commit is part of merge request !1206. Comments created here will be created in the context of that merge request.
......@@ -16,7 +16,6 @@ export type Device = NetworkelementFlattenedManagedNetworkElement
interface SelectedObject {
device: Device
mne: NetworkelementManagedNetworkElement | null
json: JSON | null
}
export interface DeviceSliceState {
......@@ -93,18 +92,10 @@ const deviceSlice = createSlice({
state.selected.mne = action.payload
},
setSelectedJson: (state, action: PayloadAction<JSON>) => {
if (!state.selected) {
throw new Error('Selected Device is null where it shouldn´t be null')
}
state.selected.json = action.payload || null
},
},
})
export const { setDevices, setSelectedDevice, setSelectedMne, setSelectedJson, setPnds } =
export const { setDevices, setSelectedDevice, setSelectedMne, setPnds } =
deviceSlice.actions
export default deviceSlice.reducer
......
import { api, NetworkElementServiceGetApiArg, NetworkElementServiceParseYangApiArg } from '@api/api'
import { api, NetworkElementServiceGetApiArg } from '@api/api'
import {
Device,
setSelectedDevice,
setSelectedJson,
setSelectedMne,
setSelectedMne
} from '@component/devices/reducer/device.reducer'
import { createAsyncThunk } from '@reduxjs/toolkit'
import { addRoutine } from '@shared/reducer/routine.reducer'
......@@ -83,30 +82,3 @@ startListening({
listenerApi.dispatch(setSelectedMne(action.payload.mne))
},
})
/**
* #3
* Fetch & receive json
*
* Triggered by #2
*/
startListening({
predicate: (action) => setSelectedMne.match(action),
effect: async (action, listenerApi) => {
const payload: NetworkElementServiceParseYangApiArg = {
timestamp: new Date().getTime().toString(),
yang: action.payload.model,
}
const { data } = await listenerApi.dispatch(
api.endpoints.networkElementServiceParseYang.initiate(payload)
)
if (!data?.json) {
throw new Error('ParseYang response is invalid. The json field is null')
}
const json = JSON.parse(data.json)
listenerApi.dispatch(setSelectedJson(json))
},
})
......@@ -17,12 +17,13 @@ export const useDeviceViewModel = () => {
}
const getYangModelJSON = (): JSON | null => {
if (!selectedDevice?.json) {
if (!selectedDevice?.mne?.model) {
return null
}
const key = Object.keys(selectedDevice.json).at(1) as keyof typeof selectedDevice.json
const innerJson = selectedDevice.json[key]
const json = JSON.parse(selectedDevice.mne.model);
const key = Object.keys(json).at(1) as keyof typeof selectedDevice.mne.model
const innerJson = json[key]
if (!(innerJson instanceof Object)) {
return null
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment