22 lines
609 B
TypeScript
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 }
|
|
});
|
|
}
|