Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ensure (filters, action, params) {
- return expose(function (args) {
- var error;
- var filtersPassed = true;
- var errors = [];
- params = require('~/cartridge/scripts/object').extend(params,args);
- for (var i = 0; i < filters.length; i++) {
- LOGGER.debug('Ensuring guard "{0}"...',filters[i]);
- filtersPassed = Filters[filters[i]].apply(Filters);
- if (!filtersPassed) {
- errors.push(filters[i]);
- if (filters[i] === 'https') {
- error = switchToHttps;
- } else if (filters[i] === 'loggedIn') {
- error = requireLogin;
- }
- break;
- }
- }
- if (!error) {
- error = function () {
- throw new Error('Guard(s) ' + errors.join('|') + ' did not match the incoming request.');
- };
- }
- if (filtersPassed) {
- LOGGER.debug('...passed.');
- try {////// this is new
- return action(params);
- } catch (e) {
- if (require('dw/system/System').instanceType === dw.system.System.DEVELOPMENT_SYSTEM) {
- response.getWriter().print(
- '<script> window.console.error("%c DW:%c %s", "color: #0000FF", "color: #ff0000", "' +
- (e + '\n' + e.stack).replace(/\n/g, '\\n').replace(/"/g, '\\"') + '");</script>');
- }
- }///////// ends
- } else {
- LOGGER.debug('...failed. {0}', error.name);
- return error(params);
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement