From 2839bd5ece6e7d7c3f4a3f9cf657a5209aff3ffc Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 22 Jul 2024 17:38:19 +0200 Subject: [PATCH] Trim data --- .../server/src/sdk/app/automations/crud.ts | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/packages/server/src/sdk/app/automations/crud.ts b/packages/server/src/sdk/app/automations/crud.ts index c0f3df6f28..7c28a8b710 100644 --- a/packages/server/src/sdk/app/automations/crud.ts +++ b/packages/server/src/sdk/app/automations/crud.ts @@ -1,4 +1,9 @@ -import { Automation, Webhook, WebhookActionType } from "@budibase/types" +import { + Automation, + RequiredKeys, + Webhook, + WebhookActionType, +} from "@budibase/types" import { generateAutomationID, getAutomationParams } from "../../../db/utils" import { deleteEntityMetadata } from "../../../utilities" import { MetadataTypes } from "../../../constants" @@ -76,17 +81,20 @@ export async function fetch() { include_docs: true, }) ) - return response.rows.map(row => row.doc) + return response.rows + .map(row => row.doc) + .filter(doc => !!doc) + .map(trimUnexpectedObjectFields) } export async function get(automationId: string) { const db = getDb() const result = await db.get(automationId) - return result + return trimUnexpectedObjectFields(result) } export async function create(automation: Automation) { - automation = { ...automation } + automation = trimUnexpectedObjectFields({ ...automation }) const db = getDb() // Respect existing IDs if recreating a deleted automation @@ -111,8 +119,7 @@ export async function create(automation: Automation) { } export async function update(automation: Automation) { - automation = { ...automation } - + automation = trimUnexpectedObjectFields({ ...automation }) if (!automation._id || !automation._rev) { throw new HTTPError("_id or _rev fields missing", 400) } @@ -246,3 +253,23 @@ async function checkForWebhooks({ oldAuto, newAuto }: any) { } return newAuto } + +function trimUnexpectedObjectFields(automation: Automation): Automation { + const result: RequiredKeys = { + _id: automation._id, + _rev: automation._rev, + definition: automation.definition, + screenId: automation.screenId, + uiTree: automation.uiTree, + appId: automation.appId, + live: automation.live, + name: automation.name, + internal: automation.internal, + type: automation.type, + disabled: automation.disabled, + testData: automation.testData, + createdAt: automation.createdAt, + updatedAt: automation.updatedAt, + } + return result +}