mirror of
https://github.com/hanzoai/dataroom.git
synced 2026-11-02 22:22:45 +00:00
130 lines
3.3 KiB
TypeScript
130 lines
3.3 KiB
TypeScript
import { NextApiRequest, NextApiResponse } from "next";
|
|
|
|
import { authOptions } from "@/pages/api/auth/[...nextauth]";
|
|
import { getServerSession } from "next-auth";
|
|
|
|
import { sendViewerInvitation } from "@/lib/api/notification-helper";
|
|
import { errorhandler } from "@/lib/errorHandler";
|
|
import prisma from "@/lib/prisma";
|
|
import { CustomUser } from "@/lib/types";
|
|
|
|
export default async function handle(
|
|
req: NextApiRequest,
|
|
res: NextApiResponse,
|
|
) {
|
|
if (req.method === "POST") {
|
|
// POST /api/teams/:teamId/datarooms/:id/users
|
|
const session = await getServerSession(req, res, authOptions);
|
|
if (!session) {
|
|
return res.status(401).end("Unauhorized");
|
|
}
|
|
|
|
// INFO: This endpoint is not available anymore
|
|
return res.status(404).json("Not available");
|
|
|
|
// const { teamId, id: dataroomId } = req.query as {
|
|
// teamId: string;
|
|
// id: string;
|
|
// };
|
|
|
|
// const { emails } = req.body as { emails: string[] };
|
|
|
|
// if (!emails) {
|
|
// return res.status(400).json("Email is missing in request body");
|
|
// }
|
|
|
|
// if (emails.length > 5) {
|
|
// return res
|
|
// .status(400)
|
|
// .json("You can only send invitations to 5 emails at a time.");
|
|
// }
|
|
|
|
// try {
|
|
// const team = await prisma.team.findUnique({
|
|
// where: {
|
|
// id: teamId,
|
|
// plan: {
|
|
// notIn: ["free", "free+drtrial"],
|
|
// },
|
|
// users: {
|
|
// some: {
|
|
// userId: (session.user as CustomUser).id,
|
|
// },
|
|
// },
|
|
// },
|
|
// select: {
|
|
// id: true,
|
|
// },
|
|
// });
|
|
|
|
// if (!team) {
|
|
// return res.status(403).end("Unauthorized to access this team");
|
|
// }
|
|
|
|
// const dataroom = await prisma.dataroom.findUnique({
|
|
// where: {
|
|
// id: dataroomId,
|
|
// teamId: teamId,
|
|
// },
|
|
// include: {
|
|
// viewers: true,
|
|
// },
|
|
// });
|
|
|
|
// if (!dataroom) {
|
|
// return res.status(404).end("Dataroom not found");
|
|
// }
|
|
|
|
// await prisma.viewer.createMany({
|
|
// data: emails.map((email) => ({
|
|
// email,
|
|
// dataroomId,
|
|
// teamId,
|
|
// invitedAt: new Date(),
|
|
// })),
|
|
// skipDuplicates: true,
|
|
// });
|
|
|
|
// const viewers = await prisma.viewer.findMany({
|
|
// where: {
|
|
// dataroomId,
|
|
// email: {
|
|
// in: emails,
|
|
// },
|
|
// },
|
|
// select: {
|
|
// id: true,
|
|
// email: true,
|
|
// },
|
|
// });
|
|
|
|
// // create a new link for the invited group
|
|
// const link = await prisma.link.create({
|
|
// data: {
|
|
// dataroomId,
|
|
// linkType: "DATAROOM_LINK",
|
|
// name: `Invited ${new Date().toLocaleString()}`,
|
|
// enableFeedback: false,
|
|
// teamId,
|
|
// },
|
|
// select: {
|
|
// id: true,
|
|
// },
|
|
// });
|
|
|
|
// console.time("sendemail");
|
|
// await sendViewerInvitation({
|
|
// dataroomId,
|
|
// linkId: link.id,
|
|
// viewerIds: viewers.map((v) => v.id),
|
|
// senderUserId: (session.user as CustomUser).id,
|
|
// });
|
|
// console.timeEnd("sendemail");
|
|
|
|
// return res.status(200).json("Invitation sent!");
|
|
// } catch (error) {
|
|
// errorhandler(error, res);
|
|
// }
|
|
}
|
|
}
|