// Helper methods for webhooks const fs = require('fs-extra'); const App = require('./app'); exports.createHandler = function(name, fn = () => 'handler') { return async (req, res, next) => { const action = await fn(req, res, next); if (typeof action == 'string') { const path = `app/webhooks/${name}/${action}.json`; if (fs.existsSync(path)) { const app = new App(req, res); let json = await fs.readJSON(path); return Promise.resolve(app.define(json)).catch(next); } else { res.json({error: `No action found for ${action}.`}); // do not return 404 else stripe will retry //next(); } } } };