Files
calendar/packages/trpc/server/routers/viewer/admin/toggleFeatureFlag.handler.ts
T
3c1297aa72 fix: calcom trpc sessio circle dep (#19893)
* fix trpc session circle dep

* fixes trpc session cirlce dep

* fix relative imports

* fix more imports to use types and not trpc

* fix exports

* Fixed types

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2025-03-19 05:50:22 -03:00

37 lines
1.0 KiB
TypeScript

import logger from "@calcom/lib/logger";
import type { PrismaClient } from "@calcom/prisma";
import type { TrpcSessionUser } from "../../../types";
import type { TAdminToggleFeatureFlagSchema } from "./toggleFeatureFlag.schema";
type GetOptions = {
ctx: {
user: NonNullable<TrpcSessionUser>;
prisma: PrismaClient;
};
input: TAdminToggleFeatureFlagSchema;
};
export const toggleFeatureFlagHandler = async (opts: GetOptions) => {
const { ctx, input } = opts;
const { prisma, user } = ctx;
const { slug, enabled } = input;
await handleFeatureToggle(opts);
return prisma.feature.update({
where: { slug },
data: { enabled, updatedBy: user.id },
});
};
export default toggleFeatureFlagHandler;
async function handleFeatureToggle({ ctx, input }: GetOptions) {
const { prisma } = ctx;
const { slug, enabled } = input;
// If we're disabling the calendar cache, clear it
if (slug === "calendar-cache" && enabled === false) {
logger.info("Clearing calendar cache");
await prisma.calendarCache.deleteMany();
}
}