26 lines
962 B
JavaScript
26 lines
962 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
|