35 lines
891 B
TypeScript
35 lines
891 B
TypeScript
import { captureException } from "@sentry/nextjs";
|
|
|
|
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
|
|
import { prisma } from "@calcom/prisma";
|
|
import type { Prisma } from "@calcom/prisma/client";
|
|
|
|
export class PrismaAppRepository {
|
|
static async seedApp(dirName: string, keys?: Prisma.InputJsonValue) {
|
|
const appMetadata = appStoreMetadata[dirName as keyof typeof appStoreMetadata];
|
|
|
|
if (!appMetadata) {
|
|
throw new Error(`App ${dirName} not found`);
|
|
}
|
|
|
|
await prisma.app.create({
|
|
data: {
|
|
slug: appMetadata.slug,
|
|
categories: appMetadata.categories,
|
|
dirName: dirName,
|
|
keys,
|
|
enabled: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
static async findAppStore() {
|
|
try {
|
|
return await prisma.app.findMany({ select: { slug: true } });
|
|
} catch (error) {
|
|
captureException(error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|