From fd7fb163135df32bc641079372eee6efc596bea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Sun, 16 Jun 2024 23:12:22 +0200 Subject: [PATCH] fix onboarding --- packages/trpc/src/routers/onboarding.ts | 19 ++++++++++++++----- packages/trpc/src/routers/organization.ts | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/trpc/src/routers/onboarding.ts b/packages/trpc/src/routers/onboarding.ts index 8e77ec93..97be0700 100644 --- a/packages/trpc/src/routers/onboarding.ts +++ b/packages/trpc/src/routers/onboarding.ts @@ -2,7 +2,7 @@ import { randomUUID } from 'crypto'; import type { z } from 'zod'; import { hashPassword, slug, stripTrailingSlash } from '@openpanel/common'; -import { db, getId, getOrganizationBySlug } from '@openpanel/db'; +import { db, getId, getOrganizationBySlug, getUserById } from '@openpanel/db'; import type { ProjectType } from '@openpanel/db'; import { zOnboardingProject } from '@openpanel/validation'; @@ -38,15 +38,24 @@ export const onboardingRouter = createTRPCRouter({ if (input.app) types.push('app'); if (input.backend) types.push('backend'); - const organization = await createOrGetOrganization( - input, - ctx.session.userId - ); + const [organization, user] = await Promise.all([ + createOrGetOrganization(input, ctx.session.userId), + getUserById(ctx.session.userId), + ]); if (!organization?.id) { throw new Error('Organization slug is missing'); } + await db.member.create({ + data: { + email: user.email, + organizationId: organization.id, + role: 'org:admin', + userId: user.id, + }, + }); + const project = await db.project.create({ data: { id: await getId('project', input.project), diff --git a/packages/trpc/src/routers/organization.ts b/packages/trpc/src/routers/organization.ts index a28fd369..163e1349 100644 --- a/packages/trpc/src/routers/organization.ts +++ b/packages/trpc/src/routers/organization.ts @@ -2,7 +2,7 @@ import { clerkClient } from '@clerk/fastify'; import { pathOr } from 'ramda'; import { z } from 'zod'; -import { db, getOrganizationBySlug } from '@openpanel/db'; +import { db } from '@openpanel/db'; import { zInviteUser } from '@openpanel/validation'; import { createTRPCRouter, protectedProcedure } from '../trpc';