| Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/ |
| Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/order.schema.js |
/**
* Order mongoose queries
*/
// SERVICES ==========================================
const auth = require('../../services/auth');
const oms = require('../../services/oms');
// 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 =========================================
orderTC.addRelation(
'partner',
{
resolver: () => partnerTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.partnerId,
},
projection: { partnerId: true },
},
);
orderTC.addRelation(
'warehouse',
{
resolver: () => warehouseTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.warehouseId,
},
projection: { warehouseId: true },
},
);
orderTC.addRelation(
'shipment',
{
resolver: () => shipmentTC.mongooseResolvers.findById(),
prepareArgs: {
_id: (source) => source.shipmentId,
},
projection: { shipmentId: true },
},
);
/**
* Login resolver
*/
orderTC.addResolver({
kind: 'mutation',
name: 'ordersRefresh',
type: orderTC,
args: {
partnerId: { type: 'String!' },
},
resolve: async ({ args }) => {
const { partnerId } = args;
console.log(`refreshing orders for ${partnerId}`);
await oms.checkOrders(partnerId);
},
});
// QUERIES ===========================================
const orderQuery = {
...auth.authenticationRequired({
orderById: orderTC.mongooseResolvers.findById(),
orderOne: orderTC.mongooseResolvers.findOne(),
orderMany: orderTC.mongooseResolvers.findMany(),
orderCount: orderTC.mongooseResolvers.count(),
}),
};
// MUTATIONS =========================================
const orderMutation = {
...auth.authenticationRequired({
ordersRefresh: orderTC.getResolver('ordersRefresh'),
// orderCreateOne: orderTC.mongooseResolvers.createOne(),
// orderCreateMany: orderTC.mongooseResolvers.createMany(),
// orderUpdateById: orderTC.mongooseResolvers.updateById(),
// orderUpdateOne: orderTC.mongooseResolvers.updateOne(),
// orderUpdateMany: orderTC.mongooseResolvers.updateMany(),
// orderRemoveById: orderTC.mongooseResolvers.removeById(),
// orderRemoveOne: orderTC.mongooseResolvers.removeOne(),
// orderRemoveMany: orderTC.mongooseResolvers.removeMany(),
}),
};
// EXPORTS ===========================================
module.exports = {
orderQuery,
orderMutation,
};