diff --git a/packages/app-store/make/api/add.ts b/packages/app-store/make/api/add.ts index 6b9cb57489..6ab3106577 100644 --- a/packages/app-store/make/api/add.ts +++ b/packages/app-store/make/api/add.ts @@ -1,39 +1,16 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; +import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; -import prisma from "@calcom/prisma"; +import appConfig from "../config.json"; -export default async function handler(req: NextApiRequest, res: NextApiResponse) { - if (!req.session?.user?.id) { - return res.status(401).json({ message: "You must be logged in to do this" }); - } - const appType = "make_automation"; - try { - const alreadyInstalled = await prisma.credential.findFirst({ - where: { - type: appType, - userId: req.session.user.id, - }, - }); - if (alreadyInstalled) { - throw new Error("Already installed"); - } - const installation = await prisma.credential.create({ - data: { - type: appType, - key: {}, - userId: req.session.user.id, - appId: "make", - }, - }); - if (!installation) { - throw new Error("Unable to create user credential for make"); - } - } catch (error: unknown) { - if (error instanceof Error) { - return res.status(500).json({ message: error.message }); - } - return res.status(500); - } +const handler: AppDeclarativeHandler = { + appType: appConfig.type, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + createCredential: ({ appType, user, slug, teamId }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {}, teamId }), +}; - return res.status(200).json({ url: "/apps/make/setup" }); -} +export default handler;