cal.pub0.org/apps/web/pages/api/download-cal-video-recordin...

40 lines
1.2 KiB
TypeScript
Raw Normal View History

Cal Video (Daily) Recording (#6039) * feat: wip Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add download recording button Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * moved video recording into /ee/, wrapped in LicenseRequired * fix: security issues in downloading recording updates designs Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add upgradation banner Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: remove default room Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: fix type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add type in get recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add suggestions and zod type for recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add types in getRecordings Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: finally all type errors fixed Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Server side validation for users in team plans for recordings * fix: remove any type Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Alan <alannnc@gmail.com>
2022-12-27 21:03:39 +00:00
import type { NextApiRequest, NextApiResponse } from "next";
import { z } from "zod";
import { fetcher } from "@calcom/app-store/dailyvideo/lib/VideoApiAdapter";
import { getSession } from "@calcom/lib/auth";
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
Cal Video (Daily) Recording (#6039) * feat: wip Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add download recording button Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * moved video recording into /ee/, wrapped in LicenseRequired * fix: security issues in downloading recording updates designs Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add upgradation banner Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: remove default room Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: fix type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add type in get recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add suggestions and zod type for recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add types in getRecordings Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: finally all type errors fixed Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Server side validation for users in team plans for recordings * fix: remove any type Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Alan <alannnc@gmail.com>
2022-12-27 21:03:39 +00:00
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
const getAccessLinkSchema = z.object({
download_link: z.string().url(),
// expires (timestamp), s3_bucket, s3_region, s3_key
});
Cal Video (Daily) Recording (#6039) * feat: wip Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add download recording button Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * moved video recording into /ee/, wrapped in LicenseRequired * fix: security issues in downloading recording updates designs Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add upgradation banner Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: remove default room Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: fix type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add type in get recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add suggestions and zod type for recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add types in getRecordings Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: finally all type errors fixed Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Server side validation for users in team plans for recordings * fix: remove any type Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Alan <alannnc@gmail.com>
2022-12-27 21:03:39 +00:00
const requestQuery = z.object({
recordingId: z.string(),
});
const isDownloadAllowed = async (req: NextApiRequest) => {
if (IS_SELF_HOSTED) return true;
const session = await getSession({ req });
// Check if user belong to active team
return !session?.user?.belongsToActiveTeam;
};
Cal Video (Daily) Recording (#6039) * feat: wip Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add download recording button Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * moved video recording into /ee/, wrapped in LicenseRequired * fix: security issues in downloading recording updates designs Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add upgradation banner Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: remove default room Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: fix type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add type in get recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add suggestions and zod type for recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add types in getRecordings Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: finally all type errors fixed Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Server side validation for users in team plans for recordings * fix: remove any type Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Alan <alannnc@gmail.com>
2022-12-27 21:03:39 +00:00
async function handler(
req: NextApiRequest,
res: NextApiResponse<z.infer<typeof getAccessLinkSchema> | void>
) {
const { recordingId } = requestQuery.parse(req.query);
if (!(await isDownloadAllowed(req))) return res.status(403);
const response = await fetcher(`/recordings/${recordingId}/access-link`).then(getAccessLinkSchema.parse);
return res.status(200).json(response);
Cal Video (Daily) Recording (#6039) * feat: wip Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add download recording button Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * moved video recording into /ee/, wrapped in LicenseRequired * fix: security issues in downloading recording updates designs Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * feat: add upgradation banner Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: remove default room Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * chore: fix type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add type in get recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add suggestions and zod type for recording Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: add types in getRecordings Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: finally all type errors fixed Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Server side validation for users in team plans for recordings * fix: remove any type Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * fix: type error Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Alan <alannnc@gmail.com>
2022-12-27 21:03:39 +00:00
}
export default defaultHandler({
GET: Promise.resolve({ default: defaultResponder(handler) }),
});