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