Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/space/routes/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import express from 'express';
var invoice = express.Router();
import { PutObjectCommand ,ListObjectsV2Command,DeleteObjectsCommand} from "@aws-sdk/client-s3";
import { s3Client } from ".././client.js";
import { chromium } from 'playwright';
import Bull from 'bull';
var bucket="jiffp";
let bucketParams;
// const invoiceQueue = new Bull('invoice',
// 'redis://127.0.0.1:6379');
async function generate(folder_name,invoice_no,sale_id) {
try {
// const browser = await chromium.launch();
// const context = await browser.newContext();
// const page = await context.newPage();
const browser = await chromium.launch({
// headless: true,
executablePath: '/usr/bin/chromium-browser',
// args: ['--no-sandbox', '--disable-setuid-sandbox'], // Add necessary args
});
const page = await browser.newPage();
// console.log(browser);
await page.goto('https://jiff.businesscloud.xyz/jiff_dashboard/generate-pdf/'+sale_id,{ waitUntil: 'networkidle' });
var image_file=await page.screenshot({ path: 'play.png' ,fullPage: true});
var pdf_file=await page.pdf({ path: 'play.pdf',format: 'a4'});
await browser.close();
bucketParams = {
Bucket: bucket,
Key: folder_name+"/invoice/pdf/"+invoice_no+".pdf",
Body: pdf_file,
ContentType: "application/pdf",
ACL: "public-read",
Preview:pdf_file,
};
var re=await insert(bucketParams);
bucketParams = {
Bucket: bucket,
Key: folder_name+"/invoice/images/"+invoice_no+".webp",
Body: image_file,
ContentType: "image/png",
ACL: "public-read",
Preview:image_file,
};
var re=await insert(bucketParams);
} catch (error) {
console.log(error.message);
}
};
// invoiceQueue.process(async function (job,done) {
// // Processors can also return promises instead of using the done callback
// // return pdfAsyncProcessor();
// // console.log(job.data);
// var res= await generate(job.data.folder_name,job.data.invoice_no,job.data.sale_id);
// if (res=="error") {
// done(new Error('error transcoding'));
// } else {
// done();
// }
// });
invoice.post('/invoice', async function(req, res, next) {
let folder_name=req.body.folder_name;
let invoice_no=req.body.invoice_no;
let sale_id=req.body.sale_id;
// invoiceQueue.add({ folder_name: folder_name, invoice_no:invoice_no,sale_id:sale_id},{removeOnComplete:true, removeOnFail:true,attempts: 3,
// backoff: {
// type: 'exponential',
// delay: 5000,
// },});
await generate(folder_name,invoice_no,sale_id)
res.locals.data={"message":"Invoice generated"};
res.status(200).json(res.locals.data);
});
export const insert = async (bucketParams) => {
try {
const data = await s3Client.send(new PutObjectCommand(bucketParams));
console.log(
"Successfully uploaded object: " +
bucketParams.Bucket +
"/" +
bucketParams.Key
);
return data;
} catch (err) {
console.log("Error ", err.message);
return "error";
}
};
export { invoice } |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]-- |