in web/web/src/lib/store/metalakes/index.js [943:1068]
tree: getState().metalakes.metalakeTree
})
)
}
dispatch(
setExpandedNodes([
`{{${metalake}}}`,
`{{${metalake}}}{{${catalog}}}{{${'fileset'}}}`,
`{{${metalake}}}{{${catalog}}}{{${'fileset'}}}{{${schema}}}`
])
)
return { filesets, page, init }
}
)
export const getFilesetDetails = createAsyncThunk(
'appMetalakes/getFilesetDetails',
async ({ init, metalake, catalog, schema, fileset }, { getState, dispatch }) => {
dispatch(resetTableData())
if (init) {
dispatch(setTableLoading(true))
}
const [err, res] = await to(getFilesetDetailsApi({ metalake, catalog, schema, fileset }))
dispatch(setTableLoading(false))
if (err || !res) {
dispatch(resetTableData())
throw new Error(err)
}
const { fileset: resFileset } = res
dispatch(
setExpandedNodes([
`{{${metalake}}}`,
`{{${metalake}}}{{${catalog}}}{{${'fileset'}}}`,
`{{${metalake}}}{{${catalog}}}{{${'fileset'}}}{{${schema}}}`
])
)
return resFileset
}
)
export const createFileset = createAsyncThunk(
'appMetalakes/createFileset',
async ({ data, metalake, catalog, type, schema }, { dispatch }) => {
dispatch(setTableLoading(true))
const [err, res] = await to(createFilesetApi({ data, metalake, catalog, schema }))
dispatch(setTableLoading(false))
if (err || !res) {
return { err: true }
}
const { fileset: filesetItem } = res
const filesetData = {
...filesetItem,
node: 'fileset',
id: `{{${metalake}}}{{${catalog}}}{{${type}}}{{${schema}}}{{${filesetItem.name}}}`,
key: `{{${metalake}}}{{${catalog}}}{{${type}}}{{${schema}}}{{${filesetItem.name}}}`,
path: `?${new URLSearchParams({ metalake, catalog, type, schema, fileset: filesetItem.name }).toString()}`,
name: filesetItem.name,
title: filesetItem.name,
tables: [],
children: []
}
dispatch(fetchFilesets({ metalake, catalog, schema, type, init: true }))
return filesetData
}
)
export const updateFileset = createAsyncThunk(
'appMetalakes/updateFileset',
async ({ metalake, catalog, type, schema, fileset, data }, { dispatch }) => {
const [err, res] = await to(updateFilesetApi({ metalake, catalog, schema, fileset, data }))
if (err || !res) {
return { err: true }
}
dispatch(fetchFilesets({ metalake, catalog, type, schema, init: true }))
return res.fileset
}
)
export const deleteFileset = createAsyncThunk(
'appMetalakes/deleteFileset',
async ({ metalake, catalog, type, schema, fileset }, { dispatch }) => {
dispatch(setTableLoading(true))
const [err, res] = await to(deleteFilesetApi({ metalake, catalog, schema, fileset }))
dispatch(setTableLoading(false))
if (err || !res) {
throw new Error(err)
}
dispatch(fetchFilesets({ metalake, catalog, type, schema, page: 'schemas', init: true }))
return res
}
)
export const fetchTopics = createAsyncThunk(
'appMetalakes/fetchTopics',
async ({ init, page, metalake, catalog, schema }, { getState, dispatch }) => {
if (init) {
dispatch(setTableLoading(true))
}
const [err, res] = await to(getTopicsApi({ metalake, catalog, schema }))
dispatch(setTableLoading(false))
if (init && (err || !res)) {
dispatch(resetTableData())
throw new Error(err)
}
const { identifiers = [] } = res
const topics = identifiers.map(topic => {
return {