fix: fixes surveys cache (#1534)

Co-authored-by: Matti Nannt <mail@matthiasnannt.com>
This commit is contained in:
Anshuman Pandey
2023-10-31 12:41:45 +05:30
committed by GitHub
parent 793935fc5d
commit 49ff9d40b9
2 changed files with 16 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import { transformErrorToDetails } from "@/app/lib/api/validator";
import { createAttributeClass, getAttributeClassByName } from "@formbricks/lib/attributeClass/service";
import { personCache } from "@formbricks/lib/person/cache";
import { getPerson, updatePersonAttribute } from "@formbricks/lib/person/service";
import { surveyCache } from "@formbricks/lib/survey/cache";
import { ZJsPeopleAttributeInput } from "@formbricks/types/js";
import { NextResponse } from "next/server";
@@ -47,15 +48,19 @@ export async function POST(req: Request, { params }): Promise<NextResponse> {
}
// upsert attribute (update or create)
updatePersonAttribute(personId, attributeClass.id, value);
const state = await getUpdatedState(environmentId, personId, sessionId);
await updatePersonAttribute(personId, attributeClass.id, value);
personCache.revalidate({
id: state.person.id,
id: personId,
environmentId,
});
surveyCache.revalidate({
environmentId,
});
const state = await getUpdatedState(environmentId, personId, sessionId);
return responses.successResponse({ ...state }, true);
} catch (error) {
console.error(error);

View File

@@ -5,6 +5,7 @@ import { prisma } from "@formbricks/database";
import { getDisplaysByPersonId, updateDisplay } from "@formbricks/lib/display/service";
import { personCache } from "@formbricks/lib/person/cache";
import { deletePerson, selectPerson, transformPrismaPerson } from "@formbricks/lib/person/service";
import { surveyCache } from "@formbricks/lib/survey/cache";
import { ZJsPeopleUserIdInput } from "@formbricks/types/js";
import { NextResponse } from "next/server";
@@ -102,13 +103,17 @@ export async function POST(req: Request, { params }): Promise<NextResponse> {
const transformedPerson = transformPrismaPerson(returnedPerson);
const state = await getUpdatedState(environmentId, transformedPerson.id, sessionId);
personCache.revalidate({
id: transformedPerson.id,
environmentId: environmentId,
});
surveyCache.revalidate({
environmentId,
});
const state = await getUpdatedState(environmentId, transformedPerson.id, sessionId);
return responses.successResponse({ ...state }, true);
} catch (error) {
console.error(error);