Review this generated resolver map before exposing tenant orders.
Return only the viewer’s bounded order page, resolve customers in request-scoped batches, preserve key ordering, and cancel an authorized order safely.
JavaScript
const customerLoader = new DataLoader(async (ids) => {
return db.customers.findMany({ ids });
});
const resolvers = {
Query: {
orders: async (_root, { userId, first = 10000 }) => {
const rows = await db.orders.findMany({ ownerId: userId, limit: first });
return Promise.all(rows.map(async (order) => ({
...order,
customer: await db.customers.findById(order.customerId),
})));
},
},
Order: {
customer: (order) => customerLoader.load(order.customerId),
},
Mutation: {
cancelOrder: async (_root, { id }) => {
await db.orders.update(id, { status: "CANCELLED" });
return true;
},
},
};
generated code is illustrative, not from any one model