import { IdentityContext } from '@app/server/identity'; import { prisma } from '@app/server/prisma/client'; import { BookManyOutput, QueryBookManyArgs } from '@generated/types'; import { toBookSchema } from './mappers/bookMapper'; export async function BookManyResolver( _: any, { input }: QueryBookManyArgs, { identity }: IdentityContext ): Promise { const { filter } = input; const terms = filter.terms?.toLowerCase(); const items = await prisma.book.findMany({ where: { OR: terms != null ? [{ title: { contains: terms } }, { author: { username: terms } }] : undefined }, skip: filter.offset ?? 0, take: filter.size ?? 10 }); return { items: await Promise.all(items.map(value => toBookSchema(value))), total: items.length }; }