From 4fc8ee8181816f5c85cd835af57a5f9b8a9c1c8a Mon Sep 17 00:00:00 2001 From: Gideon Mohr Date: Wed, 17 Apr 2024 10:26:14 +0200 Subject: [PATCH] fix: Pass only supported properties of `account` to `CreateAccount` (#2445) Co-authored-by: Shubham Palriwala --- packages/lib/account/service.ts | 4 +++- packages/lib/account/utils.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/lib/account/utils.ts diff --git a/packages/lib/account/service.ts b/packages/lib/account/service.ts index 34e601e282..1846da4e2b 100644 --- a/packages/lib/account/service.ts +++ b/packages/lib/account/service.ts @@ -5,13 +5,15 @@ import { TAccount, TAccountInput, ZAccountInput } from "@formbricks/types/accoun import { DatabaseError } from "@formbricks/types/errors"; import { validateInputs } from "../utils/validate"; +import { filterAccountInputData } from "./utils"; export const createAccount = async (accountData: TAccountInput): Promise => { validateInputs([accountData, ZAccountInput]); try { + const supportedAccountData = filterAccountInputData(accountData); const account = await prisma.account.create({ - data: accountData, + data: supportedAccountData, }); return account; } catch (error) { diff --git a/packages/lib/account/utils.ts b/packages/lib/account/utils.ts new file mode 100644 index 0000000000..9aa946ea65 --- /dev/null +++ b/packages/lib/account/utils.ts @@ -0,0 +1,11 @@ +import { TAccountInput, ZAccountInput } from "@formbricks/types/account"; + +export const filterAccountInputData = (account: any) => { + const supportedProps = Object.keys(ZAccountInput.shape); + return supportedProps.reduce((acc, prop) => { + if (account.hasOwnProperty(prop)) { + acc[prop] = account[prop]; + } + return acc; + }, {} as TAccountInput); +};