import { Application } from '@feathersjs/express'; import { HookContext } from '@feathersjs/feathers'; import service from 'feathers-mongoose'; import { populate } from 'feathers-hooks-common'; import _ from 'lodash'; import Model from '../models/waybill/waybill.model'; const waybills = service({ Model }); const populateSchema = { include: [ { service: 'contractors', nameAs: 'contractor', parentField: 'contractorId', childField: '_id' }, { service: 'products', nameAs: 'product', parentField: 'productId', childField: '_id' }, ] }; const addName = (context: HookContext): HookContext => { const { result: { operation, product, quantity } } = context; const name = `Накладная: ${product?.name} ${operation === 'in' ? 'приход' : 'расход' } ${quantity} шт.` return _.set(context, 'result.name', name); }; export default (app: Application): void => { app.use('/waybills', waybills); app.service('waybills').hooks({ after: { all: [populate({ schema: populateSchema }), addName], }, }) };