Your IP : 216.73.217.95


Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/
Upload File :
Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/warehouse-journal.schema.js

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

// Import dependencies
const { partnerTC } = require('../types/partner.type');
const { productTC } = require('../types/product.type');
const { warehouseTC } = require('../types/warehouse.type');
const { warehouseJournalTC } = require('../types/warehouse-journal.type');

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

warehouseJournalTC.addRelation(
  'product',
  {
    resolver: () => productTC.mongooseResolvers.findById(),
    prepareArgs: {
      _id: (source) => source.productId,
    },
    projection: { productId: true },
  },
);

warehouseJournalTC.addRelation(
  'warehouse',
  {
    resolver: () => warehouseTC.mongooseResolvers.findById(),
    prepareArgs: {
      _id: (source) => source.warehouseId,
    },
    projection: { warehouseId: true },
  },
);

// QUERIES ===========================================
const warehouseJournalQuery = {
  ...auth.authenticationRequired({
    warehouseJournalById: warehouseJournalTC.mongooseResolvers.findById(),
    warehouseJournalMany: warehouseJournalTC.mongooseResolvers.findMany(),
    warehouseJournalCount: warehouseJournalTC.mongooseResolvers.count(),
  }),
};

// MUTATIONS =========================================
const warehouseJournalMutation = {
  ...auth.authenticationRequired({
    warehouseJournalCreateOne: warehouseJournalTC.mongooseResolvers.createOne(),
    warehouseJournalCreateMany: warehouseJournalTC.mongooseResolvers.createMany(),
    warehouseJournalUpdateById: warehouseJournalTC.mongooseResolvers.updateById(),
    warehouseJournalUpdateOne: warehouseJournalTC.mongooseResolvers.updateOne(),
    warehouseJournalUpdateMany: warehouseJournalTC.mongooseResolvers.updateMany(),
    warehouseJournalRemoveById: warehouseJournalTC.mongooseResolvers.removeById(),
    warehouseJournalRemoveOne: warehouseJournalTC.mongooseResolvers.removeOne(),
    warehouseJournalRemoveMany: warehouseJournalTC.mongooseResolvers.removeMany(),
  }),
};

// EXPORTS ===========================================
module.exports = {
  warehouseJournalQuery,
  warehouseJournalMutation,
  warehouseJournalTC,
};