Upsert personalOrg when listing orgs

This commit is contained in:
David Corbitt
2023-08-08 12:07:18 -07:00
parent 6188f55569
commit 49c68fdbf2
4 changed files with 42 additions and 43 deletions

View File

@@ -5,6 +5,7 @@ import { z } from "zod";
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
import { prisma } from "~/server/db";
import { generateApiKey } from "~/server/utils/generateApiKey";
import userOrg from "~/server/utils/userOrg";
import {
requireCanModifyOrganization,
requireCanViewOrganization,
@@ -33,30 +34,8 @@ export const organizationsRouter = createTRPCRouter({
});
if (!organizations.length) {
const newOrgId = uuidv4();
const [newOrg] = await prisma.$transaction([
prisma.organization.create({
data: {
id: newOrgId,
personalOrgUserId: userId,
},
}),
prisma.organizationUser.create({
data: {
userId,
organizationId: newOrgId,
role: "ADMIN",
},
}),
prisma.apiKey.create({
data: {
name: "Default API Key",
organizationId: newOrgId,
apiKey: generateApiKey(),
},
}),
]);
organizations.push(newOrg);
// TODO: We should move this to a separate endpoint that is called on sign up
await userOrg(userId);
}
return organizations;
@@ -70,6 +49,7 @@ export const organizationsRouter = createTRPCRouter({
},
include: {
apiKeys: true,
personalOrgUser: true,
},
}),
prisma.organizationUser.findFirst({

View File

@@ -1,4 +1,5 @@
import { prisma } from "~/server/db";
import { generateApiKey } from "./generateApiKey";
export default async function userOrg(userId: string) {
return await prisma.organization.upsert({
@@ -14,6 +15,14 @@ export default async function userOrg(userId: string) {
role: "ADMIN",
},
},
apiKeys: {
create: [
{
name: "Default API Key",
apiKey: generateApiKey(),
},
],
},
},
});
}