in web/web/src/lib/store/metalakes/index.js [1242:1353]
tree: getState().metalakes.metalakeTree
})
)
}
dispatch(
setExpandedNodes([
`{{${metalake}}}`,
`{{${metalake}}}{{${catalog}}}{{${'model'}}}`,
`{{${metalake}}}{{${catalog}}}{{${'model'}}}{{${schema}}}`
])
)
return { models, page, init }
}
)
export const getModelDetails = createAsyncThunk(
'appMetalakes/getModelDetails',
async ({ init, metalake, catalog, schema, model }, { getState, dispatch }) => {
const [err, res] = await to(getModelDetailsApi({ metalake, catalog, schema, model }))
if (err || !res) {
throw new Error(err)
}
const { model: resModel } = res
return resModel
}
)
export const registerModel = createAsyncThunk(
'appMetalakes/registerModel',
async ({ data, metalake, catalog, type, schema }, { dispatch }) => {
dispatch(setTableLoading(true))
const [err, res] = await to(registerModelApi({ data, metalake, catalog, schema }))
dispatch(setTableLoading(false))
if (err || !res) {
return { err: true }
}
const { model: modelItem } = res
const modelData = {
...modelItem,
node: 'model',
id: `{{${metalake}}}{{${catalog}}}{{${type}}}{{${schema}}}{{${modelItem.name}}}`,
key: `{{${metalake}}}{{${catalog}}}{{${type}}}{{${schema}}}{{${modelItem.name}}}`,
path: `?${new URLSearchParams({ metalake, catalog, type, schema, model: modelItem.name }).toString()}`,
name: modelItem.name,
title: modelItem.name,
tables: [],
children: []
}
dispatch(fetchModels({ metalake, catalog, schema, type, init: true }))
return modelData
}
)
export const updateModel = createAsyncThunk(
'appMetalakes/updateModel',
async ({ metalake, catalog, type, schema, model, data }, { dispatch }) => {
const [err, res] = await to(updateModelApi({ metalake, catalog, schema, model, data }))
if (err || !res) {
return { err: true }
}
dispatch(fetchModels({ metalake, catalog, type, schema, init: true }))
return res.model
}
)
export const deleteModel = createAsyncThunk(
'appMetalakes/deleteModel',
async ({ metalake, catalog, type, schema, model }, { dispatch }) => {
dispatch(setTableLoading(true))
const [err, res] = await to(deleteModelApi({ metalake, catalog, schema, model }))
dispatch(setTableLoading(false))
if (err || !res) {
throw new Error(err)
}
dispatch(fetchModels({ metalake, catalog, type, schema, page: 'models', init: true }))
return res
}
)
export const fetchModelVersions = createAsyncThunk(
'appMetalakes/fetchModelVersions',
async ({ init, page, metalake, catalog, schema, model }, { getState, dispatch }) => {
if (init) {
dispatch(setTableLoading(true))
}
const [err, res] = await to(getModelVersionsApi({ metalake, catalog, schema, model }))
dispatch(setTableLoading(false))
if (init && (err || !res)) {
dispatch(resetTableData())
throw new Error(err)
}
const { versions = [] } = res
const versionsData = versions.map(version => {
return {