@dvsa/smc-encounter-schema
Version:
Schemas required for Encounter submission as well as custom validators ## Developing ### Pre-requisites
1 lines • 2.75 kB
JavaScript
;var classValidator=require('class-validator');var m=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=(i,e)=>m(i,"name",{value:e,configurable:true});var t=(i,e,E,r)=>{for(var o=r>1?void 0:r?a(e,E):e,p=i.length-1,c;p>=0;p--)(c=i[p])&&(o=(r?c(e,E,o):c(o))||o);return r&&o&&m(e,E,o),o};var T=class i{static{l(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return i.instance||(i.instance=new i),i.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"}};var u=class{validate(e,E){let r=E.constraints[0],o=T.getInstance(),p=o.getEncounterType(),c=o.getExaminerOfficerType();return r.level===0||r.exceptions?.includes(p)||r.level!==void 0&&r.level>p||r.roles?.length&&!r.roles.includes(c)&&!r.roles.includes("ANY")?true:e==null?false:typeof e=="string"?r.allowEmpty?true:e.trim().length>0:Array.isArray(e)?e.length===0?false:e.every((g,L)=>g==null?false:Object.entries(g).every(([N,f])=>typeof f=="string"?f.trim().length>0:f!=null)):true}};l(u,"MandatoryFieldConstraint"),u=t([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],u);function s(i,e){return (E,r)=>{classValidator.registerDecorator({name:"MandatoryField",target:E.constructor,propertyName:r,constraints:[i],options:e,validator:u});}}l(s,"MandatoryField");var n=class{static{l(this,"Nationality");}drivingLicenceAuthority;irlCountry;vehicleIndicator;cardIssuingAuthorityInd;intelligenceSubjectInd;intRegNumberCode;nonVosa;irlCode;deletionMarker;foreignOpNationalityInd;inrNationalityInd};t([s({level:4},{groups:["createEncounter"]})],n.prototype,"drivingLicenceAuthority",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"irlCountry",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"vehicleIndicator",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"cardIssuingAuthorityInd",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"intelligenceSubjectInd",2),t([classValidator.IsOptional()],n.prototype,"intRegNumberCode",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"nonVosa",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"irlCode",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"deletionMarker",2),t([s({level:4},{groups:["createEncounter"]})],n.prototype,"foreignOpNationalityInd",2),t([classValidator.IsOptional()],n.prototype,"inrNationalityInd",2);exports.Nationality=n;