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/carrier.schema.js

const auth = require('../../services/auth.js');

// Import dependencies
const { partnerTC } = require('../types/partner.type');
const { carrierTC } = require('../types/carrier.type');

// RELATIONS =========================================
carrierTC.addRelation(
  'partner',
  {
    resolver: () => partnerTC.mongooseResolvers.findById(),
    prepareArgs: {
      _id: (source) => source.partnerId,
    },
    projection: { partnerId: true },
  },
);

// QUERIES ===========================================
const carrierQuery = {
  ...auth.authenticationRequired({
    carrierById: carrierTC.mongooseResolvers.findById(),
    carrierMany: carrierTC.mongooseResolvers.findMany(),
    carrierCount: carrierTC.mongooseResolvers.count(),
  }),
};

// MUTATIONS =========================================
const carrierMutation = {
  ...auth.authenticationRequired({
    carrierCreateOne: carrierTC.mongooseResolvers.createOne(),
    carrierCreateMany: carrierTC.mongooseResolvers.createMany(),
    carrierUpdateById: carrierTC.mongooseResolvers.updateById(),
    carrierUpdateOne: carrierTC.mongooseResolvers.updateOne(),
    carrierUpdateMany: carrierTC.mongooseResolvers.updateMany(),
    carrierRemoveById: carrierTC.mongooseResolvers.removeById(),
    carrierRemoveOne: carrierTC.mongooseResolvers.removeOne(),
    carrierRemoveMany: carrierTC.mongooseResolvers.removeMany(),
  }),
};

// EXPORTS ===========================================
module.exports = {
  carrierQuery,
  carrierMutation,
};