cal.pub0.org/packages/app-store/zoho-bigin/api/add.ts

36 lines
1.2 KiB
TypeScript

import axios from "axios";
import type { NextApiRequest, NextApiResponse } from "next";
import { WEBAPP_URL } from "@calcom/lib/constants";
import { encodeOAuthState } from "../../_utils/encodeOAuthState";
import getAppKeysFromSlug from "../../_utils/getAppKeysFromSlug";
import appConfig from "../config.json";
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method === "GET") {
const appKeys = await getAppKeysFromSlug(appConfig.slug);
const clientId = typeof appKeys.client_id === "string" ? appKeys.client_id : "";
if (!clientId) return res.status(400).json({ message: "Zoho Bigin client_id missing." });
const redirectUri = WEBAPP_URL + `/api/integrations/${appConfig.slug}/callback`;
const authUrl = axios.getUri({
url: "https://accounts.zoho.com/oauth/v2/auth",
params: {
scope: appConfig.scope,
client_id: clientId,
response_type: "code",
redirect_uri: redirectUri,
access_type: "offline",
state: encodeOAuthState(req),
},
});
res.status(200).json({ url: authUrl });
return;
}
res.status(400).json({ message: "Invalid request method." });
}