Files
calendar/packages/features/apps/repository/PrismaAppRepository.ts
T

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;
}
}
}