Browse Source

split out views to separate store

pull/4023/head
Keviin Åberg Kultalahti 6 years ago
parent
commit
071522c43f
  1. 1
      packages/builder/src/builderStore/store/backend/index.js
  2. 49
      packages/builder/src/builderStore/store/backend/views.js

1
packages/builder/src/builderStore/store/backend/index.js

@ -1,5 +1,6 @@
export { database } from "./database"
export { tables } from "./tables"
export { views } from "./views"
export { permissions } from "./permissions"
export { roles } from "./roles"
export { datasources } from "./datasources"

49
packages/builder/src/builderStore/store/backend/views.js

@ -0,0 +1,49 @@
import { writable, get } from "svelte/store"
import { tables } from "./"
import api from "../../api"
function createViewsStore() {
const { subscribe, set, update } = writable({
list: [],
selected: null
})
return {
subscribe,
select: view => {
update(state => ({
...state,
selected: view,
}))
tables.select()
},
delete: async view => {
await api.delete(`/api/views/${view}`)
await tables.fetch()
},
save: async view => {
const response = await api.post(`/api/views`, view)
const json = await response.json()
const viewMeta = {
name: view.name,
...json,
}
update(state => {
const viewTable = get(tables).list.find(
table => table._id === view.tableId
)
if (view.originalName) delete viewTable.views[view.originalName]
viewTable.views[view.name] = viewMeta
state.tables = state.tables
state.selectedView = viewMeta
return state
})
},
}
}
export const views = createViewsStore()
Loading…
Cancel
Save