Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ensure (filters, action, params) {
  2.     return expose(function (args) {
  3.         var error;
  4.         var filtersPassed = true;
  5.         var errors = [];
  6.         params = require('~/cartridge/scripts/object').extend(params,args);
  7.  
  8.         for (var i = 0; i < filters.length; i++) {
  9.             LOGGER.debug('Ensuring guard "{0}"...',filters[i]);
  10.  
  11.             filtersPassed = Filters[filters[i]].apply(Filters);
  12.             if (!filtersPassed) {
  13.                 errors.push(filters[i]);
  14.                 if (filters[i] === 'https') {
  15.                     error = switchToHttps;
  16.                 } else if (filters[i] === 'loggedIn') {
  17.                     error = requireLogin;
  18.                 }
  19.                 break;
  20.             }
  21.         }
  22.  
  23.         if (!error) {
  24.             error = function () {
  25.                 throw new Error('Guard(s) ' + errors.join('|') + ' did not match the incoming request.');
  26.             };
  27.         }
  28.  
  29.         if (filtersPassed) {
  30.             LOGGER.debug('...passed.');
  31.             try {////// this is new
  32.                 return action(params);
  33.             } catch (e) {
  34.                 if (require('dw/system/System').instanceType === dw.system.System.DEVELOPMENT_SYSTEM) {
  35.                     response.getWriter().print(
  36.                         '<script> window.console.error("%c DW:%c %s", "color: #0000FF", "color: #ff0000", "' +
  37.                         (e + '\n' + e.stack).replace(/\n/g, '\\n').replace(/"/g, '\\"') + '");</script>');
  38.                 }
  39.             }///////// ends
  40.         } else {
  41.             LOGGER.debug('...failed. {0}', error.name);
  42.             return error(params);
  43.         }
  44.     });
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement