const { Report } = require('vn-print'); module.exports = Self => { Self.remoteMethodCtx('balanceCompensationPdf', { description: 'Returns the the debit balances compensation pdf', accessType: 'READ', accepts: [ { arg: 'id', type: 'number', required: true, description: 'The receipt id', http: { source: 'path' } } ], returns: [ { arg: 'body', type: 'file', root: true }, { arg: 'Content-Type', type: 'String', http: {target: 'header'} }, { arg: 'Content-Disposition', type: 'String', http: {target: 'header'} } ], http: { path: '/:id/balance-compensation-pdf', verb: 'GET' } }); Self.balanceCompensationPdf = async(ctx, id) => { const args = Object.assign({}, ctx.args); const params = {lang: ctx.req.getLocale()}; delete args.ctx; for (const param in args) params[param] = args[param]; const report = new Report('balance-compensation', params); const stream = await report.toPdfStream(); return [stream, 'application/pdf', `filename="doc-${id}.pdf"`]; }; };