salix/loopback/common/methods/vn-model/printService.js

34 lines
938 B
JavaScript
Raw Normal View History

const {Report, Email} = require('vn-print');
module.exports = Self => {
Self.printPdf = async function(ctx, id, reportName) {
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(reportName, params);
const stream = await report.toPdfStream();
return [stream, 'application/pdf', `filename="doc-${id}.pdf"`];
};
Self.sendTemplate = async function(ctx, reportName) {
const args = Object.assign({}, ctx.args);
const params = {
recipient: args.recipient,
lang: ctx.req.getLocale()
};
delete args.ctx;
for (const param in args)
params[param] = args[param];
const email = new Email(reportName, params);
return email.send();
};
};