2
0

🗃️ Remove list types from db schema

This commit is contained in:
Baptiste Arnaud
2023-02-01 09:32:39 +01:00
parent 1806840119
commit 6e0f0e487b
10 changed files with 88 additions and 16 deletions

View File

@ -54,7 +54,14 @@ export const subscribeWebhookProcedure = authenticatedProcedure
await prisma.webhook.upsert({
where: { id: webhookBlock.webhookId },
update: { url, body: '{{state}}', method: 'POST' },
create: { url, body: '{{state}}', method: 'POST', typebotId },
create: {
url,
body: '{{state}}',
method: 'POST',
typebotId,
headers: [],
queryParams: [],
},
})
return {

View File

@ -49,6 +49,7 @@ export function CustomAdapter(p: PrismaClient): Adapter {
},
},
},
onboardingCategories: [],
},
})
if (process.env.USER_CREATED_WEBHOOK_URL)

View File

@ -2,6 +2,7 @@ import prisma from '@/lib/prisma'
import { NextApiRequest, NextApiResponse } from 'next'
import { getAuthenticatedUser } from '@/features/auth/api'
import { methodNotAllowed, notAuthenticated } from 'utils/api'
import { User } from 'db'
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const user = await getAuthenticatedUser(req)
@ -9,10 +10,15 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const id = req.query.userId as string
if (req.method === 'PUT') {
const data = typeof req.body === 'string' ? JSON.parse(req.body) : req.body
const data = (
typeof req.body === 'string' ? JSON.parse(req.body) : req.body
) as User
const typebots = await prisma.user.update({
where: { id },
data,
data: {
...data,
onboardingCategories: data.onboardingCategories ?? [],
},
})
return res.send({ typebots })
}

View File

@ -30,7 +30,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
await prisma.webhook.upsert({
where: { id: webhookId },
update: { url, body: '{{state}}', method: 'POST' },
create: { url, body: '{{state}}', method: 'POST', typebotId },
create: {
url,
body: '{{state}}',
method: 'POST',
typebotId,
headers: [],
queryParams: [],
},
})
return res.send({ message: 'success' })

View File

@ -29,7 +29,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
await prisma.webhook.upsert({
where: { id: webhookId },
update: { url, body: '{{state}}', method: 'POST' },
create: { url, body: '{{state}}', method: 'POST', typebotId },
create: {
url,
body: '{{state}}',
method: 'POST',
typebotId,
headers: [],
queryParams: [],
},
})
return res.send({ message: 'success' })

View File

@ -32,6 +32,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
data: {
typebotId,
isCompleted: false,
variables: [],
},
})
res.send({ result })

View File

@ -0,0 +1,26 @@
ALTER TABLE
"PublicTypebot"
ALTER COLUMN
variables TYPE JSONB USING array_to_json(variables);
ALTER TABLE
"Result"
ALTER COLUMN
variables TYPE JSONB USING array_to_json(variables);
ALTER TABLE
"Typebot"
ALTER COLUMN
variables TYPE JSONB USING array_to_json(variables);
ALTER TABLE
"User"
ALTER COLUMN
"onboardingCategories" TYPE JSONB USING array_to_json("onboardingCategories");
ALTER TABLE
"Webhook"
ALTER COLUMN
"queryParams" TYPE JSONB USING array_to_json("queryParams"),
ALTER COLUMN
"headers" TYPE JSONB USING array_to_json("headers");

View File

@ -46,9 +46,9 @@ model User {
emailVerified DateTime?
image String?
company String?
onboardingCategories String[]
onboardingCategories Json
graphNavigation GraphNavigation?
preferredAppAppearance String?
preferredAppAppearance String?
accounts Account[]
apiTokens ApiToken[]
CollaboratorsOnTypebots CollaboratorsOnTypebots[]
@ -157,7 +157,7 @@ model Typebot {
name String
folderId String?
groups Json
variables Json[]
variables Json
edges Json
theme Json
settings Json
@ -204,7 +204,7 @@ model PublicTypebot {
updatedAt DateTime @default(now()) @updatedAt
typebotId String @unique
groups Json
variables Json[]
variables Json
edges Json
theme Json
settings Json
@ -216,7 +216,7 @@ model Result {
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
typebotId String
variables Json[]
variables Json
isCompleted Boolean
hasStarted Boolean?
isArchived Boolean? @default(false)
@ -266,8 +266,8 @@ model Webhook {
id String @id @default(cuid())
url String?
method String
queryParams Json[]
headers Json[]
queryParams Json
headers Json
body String?
typebotId String
typebot Typebot @relation(fields: [typebotId], references: [id], onDelete: Cascade)

View File

@ -41,7 +41,8 @@ export const injectFakeResults = async ({
: new Date(),
isCompleted: rand > 0.5,
hasStarted: true,
}
variables: [],
} satisfies Prisma.ResultCreateManyInput
}),
],
})
@ -135,7 +136,10 @@ export const createWorkspaces = async (workspaces: Partial<Workspace>[]) => {
export const updateUser = (data: Partial<User>) =>
prisma.user.update({
data,
data: {
...data,
onboardingCategories: data.onboardingCategories ?? [],
},
where: {
id: userId,
},
@ -149,7 +153,14 @@ export const createWebhook = async (
await prisma.webhook.delete({ where: { id: 'webhook1' } })
} catch {}
return prisma.webhook.create({
data: { method: 'GET', typebotId, id: 'webhook1', ...webhookProps },
data: {
method: 'GET',
typebotId,
id: 'webhook1',
...webhookProps,
queryParams: webhookProps?.queryParams ?? [],
headers: webhookProps?.headers ?? [],
},
})
}

View File

@ -58,6 +58,7 @@ export const setupUsers = async () => {
email: 'user@email.com',
name: 'John Doe',
graphNavigation: GraphNavigation.TRACKPAD,
onboardingCategories: [],
apiTokens: {
createMany: {
data: [
@ -82,7 +83,12 @@ export const setupUsers = async () => {
},
})
await prisma.user.create({
data: { id: otherUserId, email: 'other-user@email.com', name: 'James Doe' },
data: {
id: otherUserId,
email: 'other-user@email.com',
name: 'James Doe',
onboardingCategories: [],
},
})
return prisma.memberInWorkspace.createMany({
data: [