Home Reference Source

node-user-accounts-boilerplate-nahid/helper/resolve.js

"use strict";

/**
 * Monitors a Promise and returns success or error based on promise outcome.
 * 
 * @param {Response} res use as res.resolve(...)
 * @param {Promise} promiseObj Promise objecy to monitor
 * @param {string|object} [message=undefined] success or error message to return; if this is not specified, result of promise is returned.
 * @param {string} [audit=false] audit event type. note that '_SUCCESS' or '_FAILURE' is attached to this type depenidng on outcome
 * @param {string} [extra=undefined] extra audit payload which may help debug event
 */
function resolve(res, promiseObj, message = undefined, audit = false, extra = undefined)
{
  promiseObj.then((response) =>
  {
    res.success(message || response, audit && `${audit}_SUCCESS`, extra);
  }, res.reject(audit && `${audit}_FAILURE`, extra));
}

module.exports = resolve;