Files
formbricks-formbricks/apps/web/lib/cache/contact-attribute-key.ts
2024-12-13 05:23:22 +00:00

35 lines
932 B
TypeScript

import { revalidateTag } from "next/cache";
interface RevalidateProps {
id?: string;
environmentId?: string;
key?: string;
}
export const contactAttributeKeyCache = {
tag: {
byId(id: string) {
return `contactAttributeKey-${id}`;
},
byEnvironmentId(environmentId: string) {
return `environments-${environmentId}-contactAttributeKeys`;
},
byEnvironmentIdAndKey(environmentId: string, key: string) {
return `contactAttributeKey-environment-${environmentId}-key-${key}`;
},
},
revalidate: ({ id, environmentId, key }: RevalidateProps): void => {
if (id) {
revalidateTag(contactAttributeKeyCache.tag.byId(id));
}
if (environmentId) {
revalidateTag(contactAttributeKeyCache.tag.byEnvironmentId(environmentId));
}
if (environmentId && key) {
revalidateTag(contactAttributeKeyCache.tag.byEnvironmentIdAndKey(environmentId, key));
}
},
};