52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
import { z } from "zod";
|
|
|
|
import { prisma } from "@calcom/prisma";
|
|
|
|
const huddle01AppKeySchema = z.object({
|
|
identityToken: z.string(),
|
|
});
|
|
|
|
export async function storeHuddle01Credential(userId: number, identityToken: string) {
|
|
const existingCredential = await prisma.credential.findFirst({
|
|
where: {
|
|
type: "huddle01_video",
|
|
userId: userId,
|
|
appId: "huddle01",
|
|
},
|
|
});
|
|
|
|
if (existingCredential) {
|
|
// Update the existing credential with the new identityToken
|
|
await prisma.credential.update({
|
|
where: { id: existingCredential.id },
|
|
data: { key: { identityToken } },
|
|
});
|
|
} else {
|
|
// Create a new credential if it doesn't exist
|
|
await prisma.credential.create({
|
|
data: {
|
|
type: "huddle01_video",
|
|
key: { identityToken },
|
|
userId: userId,
|
|
appId: "huddle01",
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
export async function getHuddle01Credential(userId: number) {
|
|
const credential = await prisma.credential.findFirst({
|
|
where: {
|
|
type: "huddle01_video",
|
|
userId: userId,
|
|
appId: "huddle01",
|
|
},
|
|
});
|
|
|
|
if (!credential) {
|
|
throw new Error("Huddle01 credential not found");
|
|
}
|
|
|
|
return huddle01AppKeySchema.parse(credential?.key);
|
|
}
|