UNPKG

@dvsa/smc-encounter-schema

Version:

Schemas required for Encounter submission as well as custom validators ## Developing ### Pre-requisites

1 lines 878 B
'use strict';var classValidator=require('class-validator');var u=Object.defineProperty;var s=(t,o)=>u(t,"name",{value:o,configurable:true});function C(t){return o=>{classValidator.registerDecorator({name:"ValidatePnoGeneratedNumber",target:o,propertyName:void 0,options:t,validator:{validate(i,c){let e=c.object;if(!e)return false;let n=e.pnoGeneratedNumber,a=e.noticeRefSource?.toUpperCase?.()==="GEN";return !(n==null||a&&!/^[A-Za-z0-9]+$/.test(n)||a&&!f(n))},defaultMessage(i){return "pnoGeneratedNumber is invalid or does not match the check digit."}}});}}s(C,"ValidatePnoGeneratedNumber");function f(t){if(!t||t.length<2)return false;let i=t.charAt(t.length-1).charCodeAt(0)-48,e=t.slice(0,-1).toUpperCase().split(""),n=0;for(let r=0;r<e.length;r++)n+=e[r].charCodeAt(0)*(r+1);let a=48+n%10;return i===a-48}s(f,"calculateCheckDigit");exports.ValidatePnoGeneratedNumber=C;