import { ensureIdentity } from '@app/server/helpers'; import { IdentityContext } from '@app/server/identity'; import { prisma, uuid } from '@app/server/prisma/client'; import { MutationReviewCreateArgs, Review } from '@generated/types'; import { toReviewSchema } from './mappers/reviewMapper'; export async function ReviewCreateResolver( _: any, { input }: MutationReviewCreateArgs, { identity }: IdentityContext ): Promise { ensureIdentity(identity); if (input.text.length > 700) throw new Error('Review is too long.'); const model = await prisma.review.create({ data: { id: uuid(), text: input.text, bookId: input.bookId, userId: identity.id } }); return toReviewSchema(model); }