import multer from 'multer';
import { walletMiddleware, payMiddleware, vaultMiddleware } from '@prudra/express';
const upload = multer({ storage: multer.memoryStorage() });
app.post(
'/process-file',
walletMiddleware({ walletId: 'mwt_clx1abc123' }),
payMiddleware({ price: '0.10', description: 'File processing' }),
vaultMiddleware(),
upload.single('file'),
async (req, res) => {
const vault = req.vault!;
// Upload the submitted file
const file = await vault.addFile(
req.file!.buffer,
req.file!.originalname,
req.file!.mimetype,
);
// Upload a generated file (e.g., a PDF result)
const pdfBuffer = await generatePDF(req.file!.buffer);
const result = await vault.addFile(pdfBuffer, 'report.pdf', 'application/pdf');
await vault.seal('Processing complete');
res.json({
vaultId: vault.id,
originalUrl: file.url,
reportUrl: result.url,
});
}
);