Files
formbricks/packages/lib/services/responseNote.ts
tyjkerr bf67af4dca feat: Make response notes resolvable (#801)
* update notes ux

* add capability to resolve notes

* add migration

* update text color

* prevent updating unchanged note

* add isEdited to ResponseNote

* combine migrations into one

* simplify services

* fix UI issues

---------

Co-authored-by: Matthias Nannt <mail@matthiasnannt.com>
2023-09-18 12:34:16 +09:00

68 lines
1.5 KiB
TypeScript

import "server-only";
import { prisma } from "@formbricks/database";
import { DatabaseError } from "@formbricks/types/v1/errors";
import { TResponseNote } from "@formbricks/types/v1/responses";
import { Prisma } from "@prisma/client";
const select = {
id: true,
createdAt: true,
updatedAt: true,
text: true,
isEdited: true,
isResolved: true,
user: {
select: {
id: true,
name: true,
},
},
};
export const updateResponseNote = async (responseNoteId: string, text: string): Promise<TResponseNote> => {
try {
const updatedResponseNote = await prisma.responseNote.update({
where: {
id: responseNoteId,
},
data: {
text: text,
updatedAt: new Date(),
isEdited: true,
},
select,
});
return updatedResponseNote;
} catch (error) {
if (error instanceof Prisma.PrismaClientKnownRequestError) {
throw new DatabaseError("Database operation failed");
}
throw error;
}
};
export const resolveResponseNote = async (responseNoteId: string): Promise<TResponseNote> => {
try {
const responseNote = await prisma.responseNote.update({
where: {
id: responseNoteId,
},
data: {
updatedAt: new Date(),
isResolved: true,
},
select,
});
return responseNote;
} catch (error) {
if (error instanceof Prisma.PrismaClientKnownRequestError) {
throw new DatabaseError("Database operation failed");
}
throw error;
}
};