fix: API /teams/:id/publish (#9904)

Fixes API build failure introduced after #9291
This commit is contained in:
Omar López authored and GitHub committed 2023-07-05 03:19:20 +05:30
1 parent 1cf8ef8155
commit 9c84c3db0a
3 files changed
+19 -12

No files matched your search

+1 -1
View File
@@ -17,7 +17,7 @@ export const dateNotInPast = function (date: Date) {
export const verifyApiKey: NextMiddleware = async (req, res, next) => {
const { prisma, isCustomPrisma, isAdmin } = req;
const hasValidLicense = await checkLicense(prisma);
if (!hasValidLicense)
if (!hasValidLicense && process.env.NODE_ENV !== "development")
return res.status(401).json({ error: "Invalid or missing CALCOM_LICENSE_KEY environment variable" });
// If the user is an admin and using a license key (from customPrisma), skip the apiKey check.
if (isCustomPrisma && isAdmin) {
+17 -10
View File
@@ -2,29 +2,36 @@ import type { NextApiRequest, NextApiResponse } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { MembershipRole } from "@calcom/prisma/enums";
import { MembershipRole, UserPermissionRole } from "@calcom/prisma/enums";
import { createContext } from "@calcom/trpc/server/createContext";
import { publishHandler } from "@calcom/trpc/server/routers/viewer/teams/publish.handler";
import { viewerTeamsRouter } from "@calcom/trpc/server/routers/viewer/teams/_router";
import { TRPCError } from "@trpc/server";
import { getHTTPStatusCodeFromError } from "@trpc/server/http";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
import { schemaQueryTeamId } from "~/lib/validations/shared/queryTeamId";
import authMiddleware, { checkPermissions } from "./_auth-middleware";
const patchHandler = async (req: NextApiRequest, res: NextApiResponse) => {
await checkPermissions(req, { in: [MembershipRole.OWNER, MembershipRole.ADMIN] });
/** @see https://trpc.io/docs/server-side-calls */
const ctx = await createContext({ req, res });
const user = ctx.user;
if (!user) {
throw new Error("Internal Error.");
async function sessionGetter() {
return {
user: {
id: req.userId,
username: "" /* Not used in this context */,
role: req.isAdmin ? UserPermissionRole.ADMIN : UserPermissionRole.USER,
},
hasValidLicense: true /* To comply with TS signature */,
expires: "" /* Not used in this context */,
};
}
/** @see https://trpc.io/docs/server-side-calls */
const ctx = await createContext({ req, res }, sessionGetter);
try {
const { teamId } = schemaQueryTeamId.parse(req.query);
return await publishHandler({ input: { teamId }, ctx: { ...ctx, user } });
const caller = viewerTeamsRouter.createCaller(ctx);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return await caller.publish(req.query as any /* Let tRPC handle this */);
} catch (cause) {
if (cause instanceof TRPCError) {
const statusCode = getHTTPStatusCodeFromError(cause);
@@ -1,7 +1,7 @@
import { z } from "zod";
export const ZPublishInputSchema = z.object({
teamId: z.number(),
teamId: z.coerce.number(),
});
export type TPublishInputSchema = z.infer<typeof ZPublishInputSchema>;