Llama a una acción desde tu propio código
ACTION(name, payload) devuelve un llamador que ejecuta la acción con toda su validación, exactamente como si viniera de una ruta. El segundo argumento es el payload (la entrada). Encadena .query() y .user() para darle más datos y termina con .callback(function(err, response) {}) o .promise() (úsalo con await). Cuando los datos son inválidos, err es un error builder en lugar de una excepción.
NEWACTION('Math/add', {
name: 'Add two numbers',
input: '*a:Number, *b:Number',
action: function($, model) {
$.callback({ sum: model.a + model.b });
}
});exports.install = function() {
ROUTE('GET /sum/', sum);
ROUTE('GET /sum-promise/', sum_promise);
};
function sum($) {
ACTION('Math/add', { a: '2', b: '3' }).callback(function(err, response) {
if (err)
$.invalid(err);
else
$.json(response);
});
}
async function sum_promise($) {
try {
var response = await ACTION('Math/add', { a: 10, b: 5 }).promise();
$.json(response);
} catch (err) {
$.invalid(400);
}
}