Merge branch 'master' of github.com:budibase/budibase into budi-8483-consolidate-feature-flags-into-a-single-endpoint

This commit is contained in:
Sam Rose 2024-07-23 11:52:48 +01:00
commit b9742fcf8e
No known key found for this signature in database
3 changed files with 44 additions and 8 deletions

View File

@ -2,7 +2,7 @@ import { createMockContext, createMockCookies } from "@shopify/jest-koa-mocks"
import { BBContext } from "@budibase/types"
export const newContext = (): BBContext => {
const ctx = createMockContext()
const ctx = createMockContext() as any
return {
...ctx,
path: "/",

View File

@ -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<Automation>(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,30 @@ async function checkForWebhooks({ oldAuto, newAuto }: any) {
}
return newAuto
}
function trimUnexpectedObjectFields<T extends Automation>(automation: T): T {
// This will ensure all the automation fields (and nothing else) is mapped to the result
const allRequired: RequiredKeys<Automation> = {
_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,
}
const result = { ...allRequired } as T
for (const key in result) {
if (!Object.prototype.hasOwnProperty.call(automation, key)) {
delete result[key]
}
}
return result as T
}

View File

@ -25,8 +25,10 @@ zbctl deploy resource onboarding.bpmn --insecure
zbctl deploy resource free_trial.bpmn --insecure
zbctl deploy resource verify_sso_login.bpmn --insecure
cd ../../../../../budibase/packages/account-portal/packages/server
cd ../../../../../budibase/packages/pro
yarn && yarn build
cd ../account-portal/packages/server
yarn worker:run & cd ../../../.. && yarn dev:accountportal