32 lines
995 B
JavaScript
32 lines
995 B
JavaScript
const DataLoader = require('dataloader')
|
|
|
|
const loyalty = require('../../../loyalty')
|
|
const { getSlimCustomerByIdBatch } = require('../../../customers')
|
|
|
|
const customerLoader = new DataLoader(
|
|
ids => {
|
|
return getSlimCustomerByIdBatch(ids)
|
|
},
|
|
{ cache: false },
|
|
)
|
|
|
|
const resolvers = {
|
|
IndividualDiscount: {
|
|
customer: parent => customerLoader.load(parent.customerId),
|
|
},
|
|
Query: {
|
|
promoCodes: () => loyalty.getAvailablePromoCodes(),
|
|
individualDiscounts: () => loyalty.getAvailableIndividualDiscounts(),
|
|
},
|
|
Mutation: {
|
|
createPromoCode: (...[, { code, discount }]) =>
|
|
loyalty.createPromoCode(code, discount),
|
|
deletePromoCode: (...[, { codeId }]) => loyalty.deletePromoCode(codeId),
|
|
createIndividualDiscount: (...[, { customerId, discount }]) =>
|
|
loyalty.createIndividualDiscount(customerId, discount),
|
|
deleteIndividualDiscount: (...[, { discountId }]) =>
|
|
loyalty.deleteIndividualDiscount(discountId),
|
|
},
|
|
}
|
|
|
|
module.exports = resolvers
|