| Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/ |
| Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/shipment.schema.js |
/**
* Shipment mongoose queries
*/
const auth = require('../../services/auth');
// RESOURCES =========================================
const { orderTC } = require('../types/order.type');
const { partnerTC } = require('../types/partner.type');
const { shipmentTC } = require('../types/shipment.type');
const { warehouseTC } = require('../types/warehouse.type');
// RELATIONS =========================================
shipmentTC.addRelation(
'partner',
{
resolver: () => partnerTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.partnerId,
},
projection: { partnerId: true },
},
);
shipmentTC.addRelation(
'warehouse',
{
resolver: () => warehouseTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.warehouseId,
},
projection: { warehouseId: true },
},
);
shipmentTC.addRelation(
'order',
{
resolver: () => orderTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.orderId,
},
projection: { orderId: true },
},
);
// TODO: products
// QUERIES ===========================================
const shipmentQuery = {
...auth.authenticationRequired({
shipmentById: shipmentTC.mongooseResolvers.findById(),
shipmentOne: shipmentTC.mongooseResolvers.findOne(),
shipmentMany: shipmentTC.mongooseResolvers.findMany(),
shipmentCount: shipmentTC.mongooseResolvers.count(),
}),
};
// MUTATIONS =========================================
const shipmentMutation = {
...auth.authenticationRequired({
// shipmentCreateOne: shipmentTC.mongooseResolvers.createOne(),
// shipmentCreateMany: shipmentTC.mongooseResolvers.createMany(),
// shipmentUpdateById: shipmentTC.mongooseResolvers.updateById(),
// shipmentUpdateOne: shipmentTC.mongooseResolvers.updateOne(),
// shipmentUpdateMany: shipmentTC.mongooseResolvers.updateMany(),
// shipmentRemoveById: shipmentTC.mongooseResolvers.removeById(),
// shipmentRemoveOne: shipmentTC.mongooseResolvers.removeOne(),
// shipmentRemoveMany: shipmentTC.mongooseResolvers.removeMany(),
}),
};
// EXPORTS ===========================================
module.exports = {
shipmentQuery,
shipmentMutation,
};