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