import { paginate, resolver } from "blitz" import db, { Prisma, Customer } from "db" interface GetPhoneCallsInput extends Pick { customerId: Customer["id"] } export default resolver.pipe( resolver.authorize(), async ({ where, orderBy, skip = 0, take = 100 }: GetPhoneCallsInput) => { // TODO: in multi-tenant app, you must add validation to ensure correct tenant const { items: phoneCalls, hasMore, nextPage, count, } = await paginate({ skip, take, count: () => db.phoneCall.count({ where }), query: (paginateArgs) => db.phoneCall.findMany({ ...paginateArgs, where, orderBy }), }) return { phoneCalls, nextPage, hasMore, count, } } )