UNPKG

@dvsa/smc-encounter-schema

Version:

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

1 lines 1.44 kB
'use strict';var classValidator=require('class-validator');var l=Object.defineProperty;var a=(t,e)=>l(t,"name",{value:e,configurable:true});var n=class t{static{a(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return t.instance||(t.instance=new t),t.instance}getEncounterType(){return this.level}setEncounterType(e){this.level=e;}getExaminerOfficerType(){return this.officerType}setExaminerOfficerType(e){this.officerType=e;}getRequestType(){return this.requestType}setRequestType(e){this.requestType=e;}isDeletedEncounter(){return this.requestType==="D"}};function D(t){return e=>{classValidator.registerDecorator({name:"ValidateContact",target:e,propertyName:void 0,options:t,validator:{validate(u,s){let r=s.object;if(!r)return false;let c=n.getInstance().isDeletedEncounter()?"^(?!.*[\u2018\u2019',.-]{2})[A-Za-z\u2018\u2019',. -]*$":"^(?!-|\\s)(?!.*[\u2018\u2019',.-]{2})[A-Za-z\u2018\u2019',. -]*$",o=new RegExp(c),i=true;return r.forename!=null&&(o.test(r.forename)||(i=false)),r.surname!=null&&(o.test(r.surname)||(i=false)),i},defaultMessage(u){return `forename and surname must match ${n.getInstance().isDeletedEncounter()?"^(?!.*[\u2018\u2019',.-]{2})[A-Za-z\u2018\u2019',. -]*$":"^(?!-|\\s)(?!.*[\u2018\u2019',.-]{2})[A-Za-z\u2018\u2019',. -]*$"}`}}});}}a(D,"ValidateContact");exports.ValidateContact=D;