UNPKG

@dwp/govuk-casa

Version:

A framework for building GOVUK Collect-And-Submit-Applications

40 lines 1.72 kB
"use strict"; // Mark a waypoint as skipped var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const JourneyContext_js_1 = __importDefault(require("../lib/JourneyContext.js")); const waypoint_url_js_1 = __importDefault(require("../lib/waypoint-url.js")); const logger_js_1 = __importDefault(require("../lib/logger.js")); const log = (0, logger_js_1.default)("middleware:skip-waypoint"); exports.default = ({ waypoint }) => [ (req, res, next) => { if (!Object.hasOwn(req.query, "skipto")) { return next(); } const skipTo = String(req.query.skipto); // Inject a special `__skip__` attribute into this waypoint's data log.info(`Marking waypoint "${waypoint}" as skipped`); req.casa.journeyContext.clearValidationErrorsForPage(waypoint); req.casa.journeyContext.setSkipped(waypoint, { to: skipTo }); JourneyContext_js_1.default.putContext(req.session, req.casa.journeyContext); const redirectUrl = (0, waypoint_url_js_1.default)({ mountUrl: `${req.baseUrl}/`, waypoint: skipTo, edit: req.casa.editMode, editOrigin: req.casa.editOrigin, journeyContext: req.casa.journeyContext, }); log.debug(`Will redirect to "${redirectUrl}" after skipping "${waypoint}"`); return req.session.save((err) => { if (err) { next(err); } else { res.redirect(302, redirectUrl); } }); }, ]; //# sourceMappingURL=skip-waypoint.js.map