* add eslint config * migrate autoLock to features * migrate teamService to features * migrate userCreationService * migrate insights services to features * migrate ProfileRepository * update imports * migrate filter segmen tests * migrate filter segment repository * migrate getBusyTimes * migrate getLocaleFromRequest * refactor csvUtils * make filename clearer * migrate getLuckyUser integration test * migrate autoLock test to features * wip * refactors * migrate useBookerUrl * migrate more * wip * Migrate eventTypeRepository * membership repository * update imports * update imports * migrate * move organization repository * update imports * update imports * wip * wip * wip * wip * wip * wip * wip * wip * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix tests * fix type checks * fix * fix * migrate * update imports * fix tests * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix
28 lines
784 B
TypeScript
28 lines
784 B
TypeScript
"use server";
|
|
|
|
import { revalidateTag, unstable_cache } from "next/cache";
|
|
|
|
import { NEXTJS_CACHE_TTL } from "@calcom/lib/constants";
|
|
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
|
|
|
const CACHE_TAGS = {
|
|
HAS_TEAM_PLAN: "MembershipRepository.findFirstAcceptedMembershipByUserId",
|
|
} as const;
|
|
|
|
export const getCachedHasTeamPlan = unstable_cache(
|
|
async (userId: number) => {
|
|
const hasTeamPlan = await MembershipRepository.findFirstAcceptedMembershipByUserId(userId);
|
|
|
|
return { hasTeamPlan: !!hasTeamPlan };
|
|
},
|
|
["getCachedHasTeamPlan"],
|
|
{
|
|
revalidate: NEXTJS_CACHE_TTL,
|
|
tags: [CACHE_TAGS.HAS_TEAM_PLAN],
|
|
}
|
|
);
|
|
|
|
export const revalidateHasTeamPlan = async () => {
|
|
revalidateTag(CACHE_TAGS.HAS_TEAM_PLAN);
|
|
};
|