| Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/ |
| Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/subscription-plan.schema.js |
const { subscriptionPlanTC } = require('../types/subscription-plan.type');
const { indacoModuleTC } = require('../types/indaco-module.type');
const auth = require('../../services/auth');
// RELATIONS =========================================
subscriptionPlanTC.addRelation(
'indacoModules',
{
resolver: () => indacoModuleTC.mongooseResolvers.findByIds(),
prepareArgs: {
_ids: (source) => source.indacoModulesIds,
},
projection: { indacoModulesIds: true },
},
);
// QUERIES ===========================================
const subscriptionPlanQuery = {
...auth.authenticationRequired({
subscriptionPlanOne: subscriptionPlanTC.mongooseResolvers.findOne(),
subscriptionPlanById: subscriptionPlanTC.mongooseResolvers.findById(),
subscriptionPlanByIds: subscriptionPlanTC.mongooseResolvers.findByIds(),
subscriptionPlanMany: subscriptionPlanTC.mongooseResolvers.findMany(),
subscriptionPlanCount: subscriptionPlanTC.mongooseResolvers.count(),
}),
};
// MUTATIONS ===========================================
const subscriptionPlanMutation = {
...auth.authenticationRequired(auth.superAdminRequired({
subscriptionPlanCreateOne: subscriptionPlanTC.mongooseResolvers.createOne(),
subscriptionPlanUpdateById: subscriptionPlanTC.mongooseResolvers.updateById(),
subscriptionPlanUpdateOne: subscriptionPlanTC.mongooseResolvers.updateOne(),
})),
};
// EXPORTS ===========================================
module.exports = { subscriptionPlanQuery, subscriptionPlanMutation };