forked from tsai/budibase
9 changed files with 149 additions and 13 deletions
@ -0,0 +1,67 @@ |
|||
import { AutomationResults } from "../../definitions/automation" |
|||
import { getAppDB } from "@budibase/backend-core/context" |
|||
import { |
|||
generateAutomationLogID, |
|||
getAutomationLogParams, |
|||
// getQueryIndex,
|
|||
// ViewNames,
|
|||
} from "../../db/utils" |
|||
// import { createLogByAutomationView } from "../../db/views/staticViews"
|
|||
|
|||
const FREE_EXPIRY_SEC = 86400 |
|||
// const PRO_EXPIRY_SEC = FREE_EXPIRY_SEC * 30
|
|||
|
|||
async function clearOldHistory() { |
|||
const db = getAppDB() |
|||
// TODO: handle license lookup for deletion
|
|||
const time = new Date(new Date().getTime() - FREE_EXPIRY_SEC * 1000) |
|||
const queryParams: any = { |
|||
endIso: time, |
|||
} |
|||
const results = await db.allDocs(getAutomationLogParams(queryParams)) |
|||
const toDelete = results.map((doc: any) => ({ |
|||
_id: doc.id, |
|||
_rev: doc.rev, |
|||
_deleted: true, |
|||
})) |
|||
await db.bulkDocs(toDelete) |
|||
} |
|||
|
|||
// async function getByAutomationID(automationId: string) {
|
|||
// const db = getAppDB()
|
|||
// try {
|
|||
// const queryParams: any = {
|
|||
// automationId,
|
|||
// }
|
|||
// return (
|
|||
// await db.query(
|
|||
// getQueryIndex(ViewNames.LOGS_BY_AUTOMATION),
|
|||
// getAutomationLogParams(queryParams, { include_docs: true })
|
|||
// )
|
|||
// ).rows.map((row: any) => row.doc)
|
|||
// } catch (err: any) {
|
|||
// if (err != null && err.name === "not_found") {
|
|||
// await createLogByAutomationView()
|
|||
// return getByAutomationID(automationId)
|
|||
// }
|
|||
// }
|
|||
// }
|
|||
|
|||
export async function storeHistory( |
|||
automationId: string, |
|||
results: AutomationResults |
|||
) { |
|||
const db = getAppDB() |
|||
const isoDate = new Date().toISOString() |
|||
const id = generateAutomationLogID(isoDate, automationId) |
|||
await db.put({ |
|||
// results contain automationId and status for view
|
|||
...results, |
|||
createdAt: isoDate, |
|||
_id: id, |
|||
}) |
|||
// clear up old history for app
|
|||
await clearOldHistory() |
|||
} |
|||
|
|||
export async function retrieve() {} |
|||
@ -0,0 +1,13 @@ |
|||
export interface AutomationResults { |
|||
automationId: string |
|||
status: string |
|||
steps: { |
|||
stepId: string |
|||
inputs: { |
|||
[key: string]: any |
|||
} |
|||
outputs: { |
|||
[key: string]: any |
|||
} |
|||
}[] |
|||
} |
|||
Loading…
Reference in new issue