ln/app/server/graphql/resolvers/bookDeleteResolver.ts

22 lines
609 B
TypeScript

import { ensureIdentity } from '@app/server/helpers';
import { IdentityContext } from '@app/server/identity';
import { prisma } from '@app/server/prisma/client';
import { MutationBookDeleteArgs } from '@generated/types';
export async function BookDeleteResolver(
_: any,
{ id }: MutationBookDeleteArgs,
{ identity }: IdentityContext
): Promise<void> {
ensureIdentity(identity);
const model = await prisma.book.findUniqueOrThrow({
where: { id }
});
if (identity.id !== model.authorId) throw new Error('Operation is not permitted.');
await prisma.book.delete({
where: { id }
});
}