import { events } from "@devlego/backend-core"
import { getTableParams } from "../../../../db/utils"
import { Table } from "@devlego/types"
const getTables = async (appDb: any): Promise
=> {
const response = await appDb.allDocs(
getTableParams(null, {
include_docs: true,
})
)
return response.rows.map((row: any) => row.doc)
}
export const backfill = async (appDb: any, timestamp: string | number) => {
const tables = await getTables(appDb)
for (const table of tables) {
await events.table.created(table, timestamp)
if (table.views) {
for (const view of Object.values(table.views)) {
await events.view.created(view, timestamp)
if (view.calculation) {
await events.view.calculationCreated(view, timestamp)
}
if (view.filters?.length) {
await events.view.filterCreated(view, timestamp)
}
}
}
}
return tables.length
}