| Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/ |
| Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/partner.schema.js |
const auth = require('../../services/auth');
const { partnerTC } = require('../types/partner.type');
const { subscriptionPlanTC } = require('../types/subscription-plan.type');
// RELATIONS =========================================
partnerTC.addRelation(
'subscriptionPlan',
{
resolver: () => subscriptionPlanTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.subscriptionPlanId,
},
projection: { subscriptionPlanId: true },
},
);
// QUERIES ===========================================
const partnerQuery = {
...auth.authenticationRequired({
partnerById: partnerTC.mongooseResolvers.findById(),
partnerOne: partnerTC.mongooseResolvers.findOne(),
partnerMany: partnerTC.mongooseResolvers.findMany(),
partnerCount: partnerTC.mongooseResolvers.count(),
}),
};
// MUTATIONS =========================================
const partnerMutation = {
...auth.authenticationRequired(auth.superAdminRequired({
partnerCreateOne: partnerTC.mongooseResolvers.createOne(),
partnerCreateMany: partnerTC.mongooseResolvers.createMany(),
partnerUpdateById: partnerTC.mongooseResolvers.updateById(),
partnerUpdateOne: partnerTC.mongooseResolvers.updateOne(),
partnerUpdateMany: partnerTC.mongooseResolvers.updateMany(),
partnerRemoveById: partnerTC.mongooseResolvers.removeById(),
partnerRemoveOne: partnerTC.mongooseResolvers.removeOne(),
partnerRemoveMany: partnerTC.mongooseResolvers.removeMany(),
})),
};
// EXPORTS ===========================================
module.exports = {
partnerQuery,
partnerMutation,
};