"use strict"; let { PythonShell } = require("python-shell"); /** * Read the documentation (https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#core-controllers) * to customize this controller */ module.exports = { async findOne(ctx) { const { name } = ctx.params; const entity = await strapi.services.function.findOne({ name }); if (entity) { let args = []; entity.input.forEach((input) => { args.push(ctx.request.query[input.name] || input.defaultValue || ""); }); let script = () => { return new Promise((resolve, reject) => { PythonShell.run( `./public${entity.script.url}`, { args: [...args] }, function (err, results) { if (err) throw err; resolve(results); } ); }); }; let output = await script(); return output; } return entity; }, };