import { Application } from '@feathersjs/express'; import service from 'feathers-mongoose'; import { populate, alterItems } from 'feathers-hooks-common'; import Model from '../models/transfer/transfer.model'; import formatDate from '../hooks/formatDate'; const transfers = service({ Model }); const populateSchema = { include: [ { service: 'contractors', nameAs: 'contractor', parentField: 'contractorId', childField: '_id' } ] }; const addFields = (item: any) => { const { operation, contractor, amount } = item; const op = operation === 'in' ? 'приход' : 'расход'; const name = `Перевод: ${op} $${amount} от ${contractor.name}`; return { ...item, name }; }; export default (app: Application): void => { app.use('/transfers', transfers); app.service('transfers').hooks({ after: { all: [ populate({ schema: populateSchema }), alterItems(addFields), formatDate(), ], }, }) };