Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/
Upload File :
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,
};